Javascript:从“私有方法”调用“pubilc变量”

时间:2014-01-06 13:59:42

标签: javascript class

当用户点击一个从我的某个类调用函数的按钮时,我需要调用一些私有变量。

这是我的代码: -

class01 = new MyClass('Tom Marvolo Riddle');

function MyClass(name){

    this.name = name;

    var draw = function(){
        var newHTML ='<input type="button" value="hello" />';
        $(".ctn").append(function(){
            return $(newHTML).click(hello);
        });
    }

    var hello = function(){
        alert ('hello, my name is '+this.name+'.')
    }

    draw();

}

1 个答案:

答案 0 :(得分:1)

hello函数中,调用它时,this指的是单击的按钮,它不具有我们存储的name属性。因此,我们在另一个变量中分配name时捕获当前对象,如此

function MyClass(name){

    var that = this;
    that.name = name;

    ...
    var hello = function(){
        console.log ('hello, my name is ' + that.name + '.');
    }
    draw();
}

var class01 = new MyClass('Tom Marvolo Riddle');