当前位置: 代码迷 >> Ajax >> 在回调函数中怎么改变类属性
  详细解决方案

在回调函数中怎么改变类属性

热度:420   发布时间:2012-03-13 11:21:11.0
在回调函数中如何改变类属性 - Web 开发 / Ajax
JScript code

function Test(/*string*/sClassName) {
    this.sClassName = sClassName;
}

Test.prototype.show = function(0 {
    
    alert(this.sClassName);    // 正常显示Test

    var callback = function() {
        alert(this.sClassName); // 显示undefined,如何才能显示Test中的this.sClassName?
        this.sClassName = "test2" // 如何改变Test中的sClassName的值?
    };
    
    $.ajax({
        success: callback
    });

    callback = null;
};

var test = new Test("test");
test.show();



------解决方案--------------------
JScript code
function Test(/*string*/sClassName) {
    this.sClassName = sClassName;
}

Test.prototype.show = function(0 {
    
    alert(this.sClassName);    // 正常显示Test
    var me=this;//申明闭包对象
    var callback = function() {
//此时this对象为window对象
        alert(this.sClassName); // 显示undefined,如何才能显示Test中的this.sClassName?
        alert(me.sClassName); // 显示undefined,如何才能显示Test中的this.sClassName?
        me.sClassName = "test2" // 如何改变Test中的sClassName的值?
    };
    
    $.ajax({
        success: callback
    });

    callback = null;
};

var test = new Test("test");
test.show(); 
  相关解决方案