gpt4 book ai didi

javascript - 在构造函数中引用当前对象

转载 作者:数据小太阳 更新时间:2023-10-29 06:13:14 24 4
gpt4 key购买 nike

我正在尝试定义一个类,该类在其构造函数中实例化其他对象并将它们传递给自身的引用:

var Child = function(m) {
var mother = m;

return {
mother: mother
}
}

var Mother = function() {
var children = makeChildren();

return {
children: children
}

function makeChildren() {
var children = [];
for (var i = 0; i < 10; i++) {
var c = new Child(this); // <--- 'this' is an empty object here
children.push(c)
}
return children;
}
}

这是行不通的,Child 实例最终在它们的 mother 属性中有一个空对象。执行此操作的正确方法是什么?

最佳答案

Javascript 的 this 不是词法的。这意味着 makeChildren 得到它的自己的 this 而不是得到 Motherthis 你想要的。

为此设置一个普通变量并改为使用它。

var that = this;
function makeChildren(){
blabla = that;
}

我认为这样做还不够。通过从构造函数返回一个对象,您可以忽略 this。把东西放进去:

this.children = children;

而不是返回一个新对象。

关于javascript - 在构造函数中引用当前对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7610656/

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