gpt4 book ai didi

JavaScript 函数和新函数的区别

转载 作者:行者123 更新时间:2023-12-02 12:15:23 25 4
gpt4 key购买 nike

下面的 JavaScript 代码让我很困惑。谁能帮我理解一下。为什么PersonY没有prototype属性。

PersonX = function(){};
PersonY = new function(){};
alert(PersonX.prototype);
alert(PersonY.prototype);

最佳答案

PersonX = function(){};

将对匿名函数的引用放入 PersonX 中。 PersonX 指向一个函数。

PersonY = new function(){};

将对新构造的匿名构造函数实例的引用放入 PersonY 中。 PersonY 指向一个对象。

<小时/>

关于原型(prototype),PersonY 有一个。但是,由于构造函数没有附加任何属性和方法 before也不after实例化时,它有一个空白原型(prototype)*。

您实际上可以通过执行console.log(PersonY)来检查PersonY的原型(prototype)。你会看到它有一个原型(prototype)属性(我在Chrome中将其视为__proto__),它是“空白”的。但它有 2 个隐藏属性,constructor 是生成对象的构造函数,另一个 __proto__ 会引导您到达下一个“链链接”,即 对象对象。

*不是真正的空白,因为原型(prototype)是一个链。这个原型(prototype)级别可能是空白的,但下一个更高的原型(prototype)可能有,或者在这种情况下,确实有属性和方法。

Object prototype -> Constructor prototype -> Your Instance will have:
- toString() - blank - toString()
- hasOwnProperty() - hasOwnProperty()
- and more... - and more...
- ...but nothing from Constructor

关于JavaScript 函数和新函数的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10557213/

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