Javascript 构造函数属性:_proto__.Constructor vs prototype.Constructor

Javascript 构造函数属性:_proto__.Constructor vs prototype.Constructor,javascript,prototype,prototype-chain,Javascript,Prototype,Prototype Chain,我对Javascript相当陌生,我正试图深入挖掘并理解继承、构造函数和原型链。 因此,我创建了一个构造函数 var a = function(){this.integer=1,this.float=1.0,this.string="one"} 现在,这个函数有一个prototype.constructor属性、一个constructor属性和一个_uproto__u.constructor属性 我知道_uproto_u.constructor==为创建函数a而执行的构造函数。 另外,prot

我对Javascript相当陌生,我正试图深入挖掘并理解继承、构造函数和原型链。 因此,我创建了一个构造函数

var a = function(){this.integer=1,this.float=1.0,this.string="one"}
现在,这个函数有一个prototype.constructor属性、一个constructor属性和一个_uproto__u.constructor属性

我知道_uproto_u.constructor==为创建函数a而执行的构造函数。 另外,prototype.constructor是我使用new关键字创建“a”实例时执行的函数

但是,我不明白第三个构造函数属性的用途。它等于___;原型构造函数

还有,b.。uu proto_uu.constructor!==Object.prototype.constructor,正如我所想。为什么会这样?

a.uu proto_u是函数原型,即Function.prototype。它是所有函数从中继承特定于函数的方法(如调用、应用、绑定等)的对象

a、 构造函数是函数构造函数,即函数函数。函数原型通过构造函数属性引用其关联的构造函数,这是原型对象和构造函数之间的默认关系。下面两段将详细介绍这种默认关系

与a.prototype完全不同——在JavaScript中,任何函数都可以是构造函数,也就是说,可以使用new调用它。无论何时使用new调用函数,它都会创建一个新对象,其_proto__________________________________。所以在对新a的调用中,这是真的。proto等于a.prototype。在定义函数a时,此原型对象将自动创建并存储在.prototype中

a、 prototype.constructor等于,因为为上一段中指定的新定义函数创建原型对象的JavaScript内部例程始终为新原型提供引用新定义函数的构造函数属性。要真正深入研究,相关的ECMAScript例程是,注意,为使用CreateDynamicFunction创建的每个函数自动创建一个原型属性,以提供函数用作构造函数的可能性

a没有自己的构造函数属性,但它会自动继承一个可作为.constructor访问的

最后,一个..uu proto_uu.constructor!==Object.prototype.constructor,因为Object.prototype不是函数对象的原型父对象,而是function.prototype。相反,a............原型..构造函数===Function.prototype.constructor,更简洁地说,a....原型.==Function.prototype和a..原型...构造函数==Function。

a.....原型是函数原型,即Function.prototype。它是所有函数从中继承特定于函数的方法(如调用、应用、绑定等)的对象

a、 构造函数是函数构造函数,即函数函数。函数原型通过构造函数属性引用其关联的构造函数,这是原型对象和构造函数之间的默认关系。下面两段将详细介绍这种默认关系

与a.prototype完全不同——在JavaScript中,任何函数都可以是构造函数,也就是说,可以使用new调用它。无论何时使用new调用函数,它都会创建一个新对象,其_proto__________________________________。所以在对新a的调用中,这是真的。proto等于a.prototype。在定义函数a时,此原型对象将自动创建并存储在.prototype中

a、 prototype.constructor等于,因为为上一段中指定的新定义函数创建原型对象的JavaScript内部例程始终为新原型提供引用新定义函数的构造函数属性。要真正深入研究,相关的ECMAScript例程是,注意,为使用CreateDynamicFunction创建的每个函数自动创建一个原型属性,以提供函数用作构造函数的可能性

a没有自己的构造函数属性,但它会自动继承一个可作为.constructor访问的

最后,一个..uu proto_uu.constructor!==Object.prototype.constructor,因为Object.prototype不是函数对象的原型父对象,而是function.prototype。信息技术
相反,一个..uuu proto_uuu.constructor===Function.prototype.constructor,更简洁地说,a.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。原型。构造函数==函数。原型。构造函数==函数!!谢谢,这真的很有帮助!!