gpt4 book ai didi

javascript - 在构造函数模块内维护 'this' 的范围

转载 作者:行者123 更新时间:2023-11-28 19:52:10 25 4
gpt4 key购买 nike

我正在尝试学习模块设计模式,但在嵌套方法函数的范围方面遇到了问题。关于该主题的其他问题似乎比我正在做的更高级。因此,在以下代码中:

var myModule = function(){
var myObject = {
myArray: [], //array of items
addItem: function(arg){
var item = {
type: "example",
value: arg
}
this.myArray.push(item);
}
}
return myObject;
}

方法“addItem”似乎没有将对象添加到“myObject.myArray”,而是将其添加到自身?不太确定。谁能给我提示吗?提前致谢!

最佳答案

'this' 的作用域为 addItem() 函数。您需要使用

myObject.myArray.push(item);

您将看到一种常见的做法,即函数将“this”设置为另一个变量,以便稍后在子函数/对象内部引用。

var self = this;

var $this = this;

关于javascript - 在构造函数模块内维护 'this' 的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23251884/

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