JavaScript prototype原型链
函数都有一个prototype属性且是对象,包括Date,Array,String,Object;
只要可以使用 new 操作符进行“构造函数调用”的函数都有prototype属性。
例:new Date(); new Array(); function b(){}; new b();
其.property属性中又有一个不可枚举的属性 .constructor 这个属性引用的是函数本身;
function f(){}; var a=new f(); a.constructor===f;//输出true
通过new 操作符创建的对象 a 也有一个 .constructor 属性,引用“创建这个对象的函数”;
js中所有对象除null和undefined以外,都有一个内置属性 __proto__ ,即js的原型链;
__proto__非标准的方法来访问内部属性。
同ES5中的方法 Object.getPrototypeOf(..)
注意:
function f(){}; var a=new f(); a.__proto__===f.prototype;//输出 true
所有
*.prototype.__proto__===Object.prototype; //输出true但
Object.prototype.__proto__===null; //true