这是一个简单的小提琴。
我想确保this
里面obj
是obj
这样我可以a
从b
. 我obj
在不同的函数中使用,当我在里面放一个断点时b
,我发现那this
是窗口,而不是obj
.
var obj = {
a: function() { return 2 },
b: function() { return 5+ this.a() },
}
$('#hey').text(obj.b());
obj
是在许多其他类使用的文件中定义的,因此在 using 站点定义任何一种方法都是没有意义的obj
。
从@Kamil 的回答来看,看起来我可能需要a
作为参数传入b
. 如:
var user = obj.b(obj.a);
var obj = {
a: function() { return 2 },
b: function(func) { return 5 + func() },
}
编辑以下工作,但它很乱。有没有更优雅的方式?
我最终改变了
startingSMA = this.simple_moving_average(startingSMA, period, accessor)
到以下:
startingSMA = (function(startingSMA, period, accessor) {
return this.simple_moving_average(startingSMA, period, accessor)
}).apply(Statistics, [startingSMA, period, accessor]);