js 原型与原型链

5条原型规则:

1.所有的引用类型(数组、对象、函数),都具有对象特性,即可*扩展属性(除了“null”除外)。

js 原型与原型链

2.所有的引用类型(数组、对象、函数),都有一个_proto_(隐式原型)属性,属性值是一个普通的对象。

js 原型与原型链

3.所有的函数,都有一个prototype(显式原型)属性,属性值也是一个普通的对象。

js 原型与原型链

4.所有的引用类型(数组、对象、函数),_proto_属性值指向他的构造函数的“prototype"属性值。

js 原型与原型链

5.当时吐的道一个对象的某个属性时,如果这个对象本身没有这个属性,那么会去他的_proto_(即他的构造函数的prototype)中寻找。

js 原型与原型链

f.toString()//要去f._proto_.proto_:

当这个对象没有这个属性的时候,就会娶她自身的隐式原型中去找,隐式原型又指向她构造函数的显式原型Foo.prototype,显示原型指向普通对象,即Object,又Foo.prototype也是一个对象,从他的属性中找tostring依然也要先从他的隐式原型中去找.

instanceof :用于判断引用类型属于哪个构造函数的方法。

js 原型与原型链


原型继承的实例:

js 原型与原型链