【发布时间】:2012-08-12 02:30:01
【问题描述】:
因此,我创建了一个对象,该对象在初始化阶段进行 AJAX 调用以填充其属性。但是,我遇到了一个非常奇怪的行为:我可以在 $.ajax() 范围内打印并查看属性值,但是任何返回属性值的公共方法的返回值都是“未定义”。
JS 代码如下所示:
function MyFunction() {
this.myProperty;
this.init();
}
Myfunction.prototype.getPropertyValue = function () {
alert(this.myProperty); // returns 'undefined'
}
Myfunction.prototype.init = function () {
$.ajax({
type: 'get',
url: "getProperty.php",
dataType: "json",
success: function(response) {
this.myProperty = response[0].Property;
alert(this.myProperty) // returns 'Property Name'
}
});
}
我的想法是在 $.ajax() 范围内,“this”实际上指的是其他东西。那么,我的问题是如何确保设置了“this.myProperty”并且一旦超出 AJAX 范围就不会失去其价值?
非常感谢任何帮助。
【问题讨论】:
标签: javascript jquery ajax oop scope