对于标题很抱歉,但在这个问题上很难标题(随便推荐一个更好的标题)。很难解释有关“this”范围的JavaScript问题
我的问题是通过这种的jsfiddle最好的解释:http://jsfiddle.net/ryLhcn4q/2/
CS = {};
CS.OverviewController = {
foo: "bar",
render: function() {
console.log("Rendering. foo = " + this.foo);
}
};
CS.handleClick = function(callback) {
console.log("handleClick");
if (callback) {
callback();
}
};
$("button").click(function(e) {
CS.handleClick(CS.OverviewController.render);
});
如果你点击该按钮时,控制台指示的foo
值undefined
。如何获得this
的正确范围,以便控制台将bar
指定为foo
的值?
见@BenFortune提供的链接就知道发生了什么有趣的小测验的第三个问题! –