0
我有一個嵌套在父對象中的對象。內部對象有兩個功能,一個需要調用另一個。我以爲我可以打電話this.theFunction()
,但似乎並非如此。調用嵌套對象中的函數
var views = {
settings: {
init: function() {
this.doSomething(withThing);
},
doSomething: function(with) {
// NEVER GETS CALLED
}
}
};
在這種情況下,this
似乎引用DOMWindow
而非views.settings
對象作爲我所期待的。我錯過了什麼?
UPDATE
的views.settings.init()
功能被稱爲回調。外部進程調用template.init(view, views.settings.init);
。後者的觀點是回調。在template.init()
之內,回調函數簡稱爲callback()
。爲了清楚(希望),這裏是我們如何去views.settings.init
一個片段:
什麼會導致上下文迷路和我能做些什麼把它找回來,這樣this
引用views.settings
對象?
無論在打電話的「初始化」功能,以這樣的方式失去上下文('this'值)這樣做。 'this'的默認值是全局上下文(除非你處於「strict」模式)。 – Pointy
'views.settings.doSomething()'? – BenM
也''與'是一個保留的關鍵字,請參閱http://stackoverflow.com/questions/61552/are-there-legitimate-uses-for-javascripts-with-statement – Biketire