我很困惑,在JS構造函數中,上下文有什麼問題。在ctor中我聲明瞭一個函數。在該函數的調用this
被設置爲ctor的上下文之前。函數內部的值this
設置爲window
。我不明白爲什麼。在HTML中,ctor被稱爲'new'。新手:Javascript構造函數和範圍上下文問題
function MyCtor() {
var myFunc = function() {
debugger; // #2
// code for myFunc
}
debugger; // #1
myFunc();
debugger; // #3
}
在調試器#1,this
設爲MyCtor
。在#2 this
是window
。然後在#3回到MyCtor
。
我確定我在這裏錯過了一些基本的東西,但我已經閱讀了很多範圍和上下文;顯然不夠。
閱讀關於函數和範圍在這裏:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope – Ian
...和關於[''this''關鍵字(「上下文」)在這裏] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this)。它不應該被設置爲'MyCtor',除非你以奇怪的方式調用構造函數。 – Bergi
@Bergi當我們用新的方式調用MyCtor時,「this」會在body內顯示什麼? –