我试图使用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>
答案 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);
}