我很好奇,如何能更好地这样写:JavaScript的变量范围在回调中
function Klass(variable) {
this.variable = variable;
this.callAjax = function() {
$.get('/url', { }, function(json) {
console.log(variable); //! <-- shows undefined
}, "json");
}
}
所以我创建了一个局部变量:_variable
function Klass(variable) {
this.variable = variable;
this.callAjax = function() {
var _variable = this.variable;
$.get('/url', { }, function(json) {
console.log(_variable); //! <-- its ok
}, "json");
}
}
和罚款,但我真不” t这个解决方案,
是否有人有更好的代码?
'无功自我= this' – 2013-02-28 07:41:21
'$获得(...函数(){...}绑定(本)。)' – 2013-02-28 07:41:48
我看不到为什么'console.log(variable);'应该显示'undefined'。 'variables'应该引用构造函数的参数。你是否将'undefined'传递给构造函数并稍后设置'this.variable'? – 2013-02-28 07:47:10