美文网首页
__proto__、prototype和constructor总

__proto__、prototype和constructor总

作者: 木子哥 | 来源:发表于2018-02-11 14:19 被阅读0次

一图胜千言。


首先,我的理解__proto__constructor 是对象(函数)的一个属性,类似指针,指向了其他对象。而 xxx.prototype 是一个对象

  1. 对象 __proto__属性的指向这个对象的原型对象,在对象实例化过程中指定。
  2. prototype 即为函数对象的原型对象,普通对象没有这个属性。
  3. 对象 constructor属性的值是这个对象的原型对象“继承”过来的,所以对象和这个对象的原型对象的 constructor属性 共同指向了这个对象的构造函数

有点绕,下面举图中 function Foo() 的例子说明。

//  构造函数Foo
function Foo(name) {
  this.name = name
};

//  通过Foo构造函数创建出两个对象实例
let f1 = new Foo('f1');
let f2 = new Foo('f2');

//  这两个对象实例都是从Foo构造函数的原型对象继承而来的,它们的原型对象相同,所以__proto__指向也相同。
console.log(f1.__proto__ === f2.__proto__);

//  这两个对象实例的原型对象与构造函数的原型对象相同
console.log(f1.__proto__ === Foo.prototype);
console.log(f2.__proto__ === Foo.prototype);

这篇文章讲得很透彻,包括ObjectFunction 谁先出现的鸡蛋问题。

参考资料

相关文章

  • 2018-01-29 原型链理解

    普通对象和函数对象概念 prototype继承 __proto__、prototype、constructor讲解

  • __proto__、prototype和constructor总

    一图胜千言。 首先,我的理解__proto__ 和 constructor 是对象(函数)的一个属性,类似指针,指...

  • 原型链和继承

    类、 prototype 、__proto__、实例、constructor之间的关联 1. prototype ...

  • JScript语言——原型与原型链

    # 原型:prototype属性、__proto__、constructor属性 prototype,只是函数的一...

  • prototype基础

    任何对象都有__proto__,只有函数对象才有prototype,prototype.constructor指回...

  • prototype, __proto__和constructor

    介绍 示例代码: 结论: __proto__ 就相当于一个对象的原型,根据js调用规则,当一个对象调用一个方法时,...

  • 关于原型链的相关整理

    首先要记住:①:__proto__和constructor是对象独有的;②:prototype 是函数独有的;③:...

  • js面向对象

    1.函数的原型链(__ proto__,prototype,constructor ) 函数的原型(prototy...

  • 原型链相关问题

    1、有如下代码,解释Person、 prototype、__proto__、p、constructor之间的关联。...

  • 原型链

    问答: 1.有如下代码,解释Person, prototype, __proto__,p,constructor之...

网友评论

      本文标题:__proto__、prototype和constructor总

      本文链接:https://www.haomeiwen.com/subject/fkbktftx.html