gpt4 book ai didi

javascript - this.constructor.prototype.constructor.apply在js中是什么意思

转载 作者:搜寻专家 更新时间:2023-11-01 04:09:46 27 4
gpt4 key购买 nike

我正在阅读 this文章,我不知道下面这行是做什么的。即使我删除了这一行,我也看不出有什么不同。

this.constructor.prototype.constructor.apply(this,Array.prototype.slice.call(arguments));

谁能解释一下为什么 this.constructor.prototype.constructor 是必需的,this.constructor 不会返回相同的值吗?

最佳答案

基本上,它试图做的是为作为当前对象原型(prototype)的对象调用构造函数。

分解:

  • this - 当前对象
  • this.constructor - 当前对象的 constructor 属性,几乎可以肯定(但不一定!)继承自其原型(prototype)。因此它可能(但不一定)是创建对象的函数。
  • this.constructor.prototype - 分配给该函数的 prototype 属性的对象。 (如果您通过 new 调用该函数,则该对象将被分配为创建的对象的基础原型(prototype)。)
  • this.constructor.prototype.constructor - 创建那个对象的函数。

...然后我们在其上调用apply 以在对当前this 的调用中设置this,并使用 Array.prototype.slice 将当前参数复制为一个真正的数组。 (最后一部分是不必要的,apply 接受任何类数组,它不需要真正的数组。所以代码可以直接使用参数。)

关于javascript - this.constructor.prototype.constructor.apply在js中是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17125304/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com