我对JavaScript不是很熟悉。
我使用属性定义了一个Object。 该对象的方法使用该对象的另一种方法作为回调来创建jQuery帖子。 在第二种方法中,属性忘记了它的值,警告打印'undefined'
var myObj=
{ attr1 : 'val1',
method1 : function()
{ $.post("__AX_getContent?edit=true").done(this.method2);
alert(this.attr1);
},
method2: function(data)
{ alert(this.attr1);
}
}
$(myObj.method1());
在method2中拥有属性值我做错了什么?
答案 0 :(得分:4)
这是因为第二种方法中的this
是AJAX发送的XHR
对象。
尝试使用.bind
函数原型。
$.post("__AX_getContent?edit=true").done(this.method2.bind(this));