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__又是什么?展开便知道:原来是各种默认方法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。