面向对象的JavaScript共享方法变量

时间:2012-08-07 16:40:29

标签: javascript

为什么这不起作用?

function thing() {

    var bigvar;

    function method1() {
        bigvar = 1;
    }

    function method2() {
        alert(bigvar);
    }

    this.method1 = method1;
}

var a = new thing();
a.method1();
a.method2();
​

我希望method2能够工作,但它没有..有没有办法让这个工作?

3 个答案:

答案 0 :(得分:3)

您没有像method2那样公开method1

this.method1 = method1;
this.method2 = method2;  //<-- missing this

答案 1 :(得分:0)

为什么你有this.method1 = method1而不是this.method2 = method2?试试吧。

答案 2 :(得分:0)

为什么不这样做?

function thing() {

    var bigvar;

    this.method1 = function () {
        bigvar = 1;
    }

    this.method2 = function () {
        alert(bigvar);
    }

}

var a = new thing();
a.method1();
a.method2();​