从内部函数读取外部变量

时间:2014-03-15 01:18:12

标签: javascript scope

我有这样的代码:

function main() {
    this.var1 = 1;
    function internal() {
        //some function supposed to work on var1
    }
    this.x = new internal();
}
var m = new main();

function main2() {
    m.x.someFunction(); //need to change m.var1
}

有没有办法从内部(),访问var1而不将其作为参数传递? 我知道我可以这样做:var var1 = 1;,然后在内部()我可以放置像var1 += blabla;这样的东西,但这样做会将var1设置为局部变量,它不会再被看见了通过main2()函数。此外,我甚至可以将var1声明为全局,但我需要它作为main()的属性。所以,我不能将var1设置为局部变量或全局变量,我不能将internal()设置为全局函数或main函数。

我希望有人知道如何扩展"内部()

中var1的范围

1 个答案:

答案 0 :(得分:0)

这有什么问题?

function main() {
    var var1 = 1;
    function internal() {
        //some function supposed to work on var1
    }
    this.var1 = var1;
    this.x = new internal();
}

或者可能这样:

function main() {
    this.var1 = 1;
    function internal(me) {
        //some function supposed to work on me.var1
    }
    this.x = new internal(this);
}