【发布时间】:2010-02-24 12:23:47
【问题描述】:
我正在尝试将一些 JSON 数据分配给 JS.Class 实例的属性。
var MyClass = new JS.Class({
initialize: function(uuid) {
this.uuid = uuid;
},
write: function() {
$.getJSON(url+"?callback=?", {}, function(data) {
Assign(data);
});
function Assign(data) { this.content = data; };
}
});
var m = new MyClass("uuid_goes_here");
m.write();
JSON 是异步接收的,这就是$.getJSON 回调中的函数调用的原因。
我现在遇到的问题是Assign 函数中的this.content 不在名为write 的实例方法的范围内。因此,虽然this.uuid 返回正确,但this.content 仍未定义(如您所料)。
关于如何纠正这个问题的任何想法?我尝试使用全局变量作为解决方法,但异步调用不允许这样做(而且这是一个糟糕的解决方案)。
有几点需要注意,以防万一:我必须使用 JSONP,所以“?callback=?”必须留下来,我想保持异步。
【问题讨论】:
标签: javascript jquery scope this