6

Java和Javascript都是面向对象语用,即一切都是对象,但不同的是,在Java的世界里,对象是由类(Class)实例出来的;而在JavaScript的世界中,对象是由类型(Type)衍生出来的。


JavaScript是一种prototype based programming语言,与通常的class based programming语言有很大的区别。
1.函数是first class object,即函数与对象具有相同的语言地位。
2.没有类,只有对象。
3.函数也是一种对象,所谓的函数对象。
4.对像是按“引用”来传递的。


“prototype”字面意识是“原型”,它是函数(function)的一个保留属性,该属性的类型是对象。不信?敲段代码便知道。

function fn(){};
console.log(typeof fn.prototype); //--> object

既然prototype是对象,那么这个对象有什么内容呢?敲敲便知道

console.log(fn.prototype);

结果:构造函数和__prototype__
图片描述
那么,__proto__又是什么?展开便知道:原来是各种默认方法。
图片描述


Asrocky
420 声望36 粉丝