gpt4 book ai didi

javascript - 使用同一对象中其他函数的对象函数

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

我正在尝试创建一个具有多种方法的对象,但我希望某些方法可以使用同一对象中的其他方法。这是一个例子:

var myObj = {
sum: function (a,b) {
return a + b;
},
somethingThatUsesSum: function (a,b) {
return this.sum(a,b) * 5;
}
};

如果你这样调用它,这个“有效”:

myObj.somethingThatUsesSum(1, 2);

因为 this 设置为 myObj。但是,如果您使用 apply,除非您将 this 显式设置为 myObj,否则它不起作用。

我不喜欢在 somethingThatUsesSum 中使用 this,但我想知道是否有更好的方法。

我知道我可以创建一个带有本地函数 sum 的闭包,myObj 中的两个函数都可以使用它,但我想知道是否还有其他更接近的方法上面提出的方法。

最佳答案

正如 Pointy 所说,这就是 Javascript 的工作方式,但在这种情况下你可以这样做(已测试):

var myObj = {
sum: function (a,b) {
return a + b;
},
somethingThatUsesSum: function (a,b) {
return myObj.sum(a,b) * 5;
}
};
myObj.somethingThatUsesSum.apply(0,[3,5])// Or ...UsesSum.call(0,3,5)
// => 40
//0 stands for "I don't care what this is invoked on"

关于javascript - 使用同一对象中其他函数的对象函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19498494/

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