使用javascript从不同的上下文调用函数?

使用javascript从不同的上下文调用函数?,javascript,Javascript,我试图使用OOP风格在javscript中调用一个函数/方法,但来自不同的上下文 例如: var SomeClass = function(){ this.init = function(){ var something = "An Interesting Variable"; this.foo(something); //this works fine }, this.foo = function(bar){ alert(

我试图使用OOP风格在javscript中调用一个函数/方法,但来自不同的上下文

例如:

var SomeClass = function(){
    this.init = function(){
        var something = "An Interesting Variable";
        this.foo(something); //this works fine
    },
    this.foo = function(bar){
        alert(bar);
    }
    this.foo2 = function(){
        this.foo(something); // this deos not work/ something is not defined
    }

};

var newClass = new SomeClass();
newClass.init();
newClass.foo2();

因此,基本上我想在
this.foo2()
上下文中调用
this.foo()
函数,但作为
this.init()
,我不确定这是否有意义,但我对javascript中的OOP是新手。

您的上下文是正确的,但您正在尝试访问一个未在该范围中定义的变量。在
init
中用
var
声明的变量
something
将仅存在于该函数中

您需要使其成为
SomeClass
的成员:

this.init = function() {
   this.something = 'An interesting variable';
   this.foo(this.something);
},

this.foo2 = function() {
   this.foo(this.something);
}