根据上面这个连接图,我们能得到:
不过,要明确的真正重要的一点就是,这个连接存在于实例(person1
)与构造函数(Person
)的原型对象(Person.prototype
)之间,而不是存在于实例(person1
)与构造函数(Person
)之间。
注意:因为绝大部分浏览器都支持__proto__属性,所以它才被加入了 ES6 里(ES5 部分浏览器也支持,但还不是标准)。
新对象 obj 是使用 new 操作符后跟一个构造函数来创建的。构造函数(Object)本身就是一个函数(就是上面说的函数对象),它和上面的构造函数 Person 差不多。只不过该函数是出于创建新对象的目的而定义的。所以不要被 Object 吓倒。
这些构造器都是函数对象:
小测试来检验一下你理解的怎么样:
第四题,参照第二题,因为 Person 和 Object 一样都是构造函数
好了,如果以上你都能明白,那就可以继续深入学习第三篇教程了,看我下一篇的更新哦
小编是个多年开发经验的程序员。如果你想要学好WEB前端,在学习过程中,身边没有一个能够指导你学习的人,可以到这个WEB前端裙,里面最新学习路线和教程,不管是计算机专业想要往WEB前端方向发展,还是零基础想转行,都可以跟着教程学,有什么不懂的可以在里面问,这就是WEB前端裙:
__proto__
属性指向它的函数对象的原型对象,直到指向Object对象为止,这样就形成了一个原型指向的链条
instanceOf
是如何进行判断对象类型的??
通过判断实例的_proto_
属性与构造函数的prototype
属性是否指向同一个原型对象。
注意1: 实例的_proto_
指向的是构造函数的prototype
属性,与构造函数没有关系。
注意2: 原型上面可能还有会有原型,会沿着原型链继续向上找,找到返回true,反之返回false。
但是我们不能轻易说明foo
是Object
的实例,只有以下满足,才是Object
的实例。