gpt4 book ai didi

javascript - 返回构造函数不产生构造函数

转载 作者:行者123 更新时间:2023-11-28 00:24:26 26 4
gpt4 key购买 nike

我想使用以下代码创建一个临时构造函数,

    var foo = function() {
var bar = {
a : 3,
b : {c: 4, d: {e: 5}}
};

var f_ = function() {};

f_.prototype = bar;

return f_;
}

根据我的理解,foo应该返回一个可以用作构造函数的函数,就像这样var baz = new foo但是,构造函数返回一个函数,而不是一个东西。我可以从返回的函数中看到原型(prototype),

    >baz.prototype
{ a: 3, b: { c: 4, d: { e: 5 } } }

所以,我的问题是,为什么 foo 不返回构造函数?

最佳答案

您需要对代码进行轻微修改。如果您希望 foo 成为构造函数,那么首先要确保它是一个立即函数,它返回一个新的构造函数:

var foo = function() {
var bar = {
a: 3,
b: {c: 4, d: {e: 5}}
};

var f_ = function() {};

f_.prototype = bar;

return f_;
}();

var obj = new foo();

alert(obj.a + ', ' + obj.b.d.e)

注意,foo函数末尾的(),这些括号使foo立即执行并分配新函数f_ 到它。

关于javascript - 返回构造函数不产生构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29684900/

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