1)、所有的引用类型都具有对象的特性、即可随意扩展属性(null除外!)
例如:var a = {};
a.b = 2;a.c = function(){alert(1)};对对象a扩展了b,c属性。
所有的引用类型都有一个_proto_属性(隐原型)。其为一个普通对象。

所有的函数都有一个显原型prototype,也是指向一个普通的对象。

所有引用对象的隐式原型(_proto_)指向其构造函数的显式原型(prototype).

!原型链规则,当我们去获取一个对象的属性时,如过从其已有的属性中找不到,则会从其隐式原型链中寻找(依次向其祖先链中寻找)

instansof用于判断对象属于哪个构造函数的实例的方法
例如 a = {},a其实是Object的一个实例,所以a instansof Object ===true;

instansof 的判断逻辑:

网友评论