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

时间:2014-06-24 11:08:38

标签: javascript

我试图使用OOP样式调用javscript中的函数/ Method,但是来自不同的上下文。

例如:

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.foo()上下文中调用this.foo2()函数,但是作为this.init(),我不确定这是否有意义,但是我在javascript中对OOP不熟悉。< / p>

1 个答案:

答案 0 :(得分:2)

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

您需要将其设为SomeClass

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

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