因此,我创建了一个对象,该对象在初始化阶段进行 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 范围就不会失去其价值?
任何帮助深表感谢。