我正在尝试使用多种方法创建一个对象,但我希望某些方法可以使用来自同一对象的其他方法。这是一个例子:
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
. this
但是,如果您使用 apply ,除非您明确设置为 ,否则它不起作用myObj
。
我不喜欢使用this
in somethingThatUsesSum
,但我想知道是否有更好的方法。
我知道我可以创建一个带有本地函数的闭包,该函数sum
可以被 中的两个函数使用myObj
,但我想知道是否有另一种更接近上述方法的方法。