在Javascript里,一切对象(Object和Function)都有内部的属性_proto_,但只Object.prototype._proto_ 为 null,这个属性对于开发人员不可见(Firefox、Chrome浏览器可以访问到,IE不行)。对于Function(函数或方法),创建时还会有一个Prototype,这个“Prototype”才是开发人员经常用到的原型链继承应用。

        每当创建一个对象的时候,这个对象的_proto_就会被赋值为这个对象的构造函数的prototype,这样对象的_proto_属性和构造函数的 prototype引用相同的对象,并且一旦对象创建完成,_proto_属性就不会改变。 这样通过对象的_proto_属性,以及_proto_所引用的对象的_proto_属性,就构成了一个_proto_链。 当访问一个对象的属性和方法的时候,js虚拟机正是通过这个_proto_链来查找的。

Javascript的原型链、instanceof与typeof

参考:http://www.mollypages.org/misc/js.mp

instanceof

    假设有一条这样的语句:A instanceof B;
     在上面的语句执行过程中,虚拟机会把B.prototype和A的_proto_链上的节点逐个进行比较,如果找到相等的节点,则返回true,否则返回false。

typeof

    会返回六种类型的结果 object function string number booean undefined,是javascript语言实现的一些判定类型的机制。

转载于:https://my.oschina.net/ffwcn/blog/199509

相关文章:

  • 2021-12-16
  • 2018-04-09
  • 2021-12-09
  • 2021-08-11
  • 2021-07-28
  • 2021-09-15
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-10-20
  • 2021-09-15
  • 2022-12-23
  • 2021-05-18
相关资源
相似解决方案