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__又是什么?睁开便晓得:原来是种种默许要领。