Javascript对象的属性忘记了值

时间:2014-03-24 14:03:30

标签: javascript

我对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中拥有属性值我做错了什么?

1 个答案:

答案 0 :(得分:4)

这是因为第二种方法中的this是AJAX发送的XHR对象。

尝试使用.bind函数原型。

$.post("__AX_getContent?edit=true").done(this.method2.bind(this));