我的代碼:javascript,嚴格模式,斷點對結果有影響嗎?
'use strict';
var foo=function(){
alert(this);
}
var bar = {
baz:foo,
};
var x = bar.baz;
x();//1
當我直接執行,所有罰款,警告undefined
。當我在(1)處插入斷點時,按兩次F11,提示window
。
任何人都可以解釋它嗎?非常感謝。
我的代碼:javascript,嚴格模式,斷點對結果有影響嗎?
'use strict';
var foo=function(){
alert(this);
}
var bar = {
baz:foo,
};
var x = bar.baz;
x();//1
當我直接執行,所有罰款,警告undefined
。當我在(1)處插入斷點時,按兩次F11,提示window
。
任何人都可以解釋它嗎?非常感謝。
我創建了jsfiddle並檢查它。我在1
添加斷點,當我使用F11 console.log
或alert
(我改變了警報登錄最後的例子)顯示我undefined
...但後來我停在斷點和調用瀏覽器開發工具控制檯x()
結果是範圍對象在Mac OS X/Chrome最新版本,結果爲undefined
,適用於Mac OS X/Firefox las版本。
因此,在像開發工具控制檯這樣的非標準線程中執行的結果是不同的,並且與javascript語言沒有關係。
謝謝。但在調試模式下的結果與標準模式下的結果不同,這很奇怪......是否有任何文章可以解釋它? – zilong
由於瀏覽器使用包裝器來調試線程,如Gecko,使用[XPCOM](https://developer.mozilla.org/en-US/docs/Mozilla/XPCOM)或Blink使用自己的V8 shell /調試服務器[implementation](https: //chromium.googlesource.com/chromium/blink.git/+/master/Source/bindings/v8/PageScriptDebugServer.cpp)。 – Pinal
更正您的代碼第一 – Khamidulla
@Phoenix,我知道代碼看起來很奇怪,但沒有錯誤,執行正常。所以它有什麼問題?你能說清楚嗎? – zilong
@meagar注意'使用strict',沒有破發點,警報不確定 – zilong