gpt4 book ai didi

Javascript 构造函数

转载 作者:行者123 更新时间:2023-11-30 13:13:40 25 4
gpt4 key购买 nike

尝试分别执行以下两个代码块时:第一个:

function Hallo() {

}
var some_obj = {
name: "Fred",
age: 23,
}
Hallo.prototype = some_obj;
var obj = new Hallo();
obj.constructor;

第二个:

 function Hallo() {

}
Hallo.prototype.name = 'Khanh';
Hallo.prototype.age = 23;
var obj = new Hallo();
obj.constructor;

我在 firebug 的控制台中得到的结果是第一个是“Object{}”,第二个是“Hallo()”。虽然第二个很容易理解,但第一个真的很奇怪。因为据我所知,第一个中 obj 对象的构造函数仍然相同(即 Hallo() 函数)。但是结果我得到了 Object() 函数。我真的不明白为什么。你能帮我吗?谢谢!

最佳答案

原因是:

当你执行 var obj = new Hallo(); 时,然后

console.log(obj.constructor === Hallo.prototype.constructor); // true

在您的第一个示例中,您为 Hallo.prototype 分配了一个新对象,其 constructor 是函数 Object (function Object (){...}).

在您的第二个示例中,Hallo.prototype.constructor 仍然是 function Hallo() {...}

关于Javascript 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12926373/

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