Firebug控制檯範圍。爲什麼不是「這個」總是一樣的?不是所有時間都是「窗口」嗎?Firebug控制檯窗口範圍。爲什麼不是「這個」總是一樣的?
6
A
回答
3
的this
在控制檯的值將是一樣的this
代碼當前正在執行的價值。試想一下: -
function outer()
{
// this is window
var x = {n:12};
var fn = function()
{
// this is object {n:12}
alert(this.n);
}
fn.call(x);
}
...
<img src="thing.gif" onclick="outer()" />
如果你把在x = {n:12}
行一個破發點,切換到控制檯,您會發現this
是窗口。但是,當您步入alert
行時,控制檯中的this
是x
變量所持有的對象。 IOW在執行上下文中的this
與控制檯之間沒有區別。因此,您可以在調試時使用控制檯調整變量和屬性的值。
2
在直接調用而不 明確所有者對象功能,使的此的 值是默認 對象(在瀏覽器窗口)。
在使用該方法 調用語法調用的函數,像
objname.myFunction()
或objname['myFunction']()
,導致要OBJNAME的這個 值。
查看更多ABOT調用函數在JavaScript
+0
這個答案准確,因爲它實際上並沒有解決問題,因爲它涉及到控制檯的行爲。 – AnthonyWJones 2009-11-26 13:55:31
2
的this
關鍵字總是指函數的所有者被調用。你可以在here上閱讀清楚而詳細的解釋。
從我這個圖片上面鏈接的文章中,我想解釋它最清楚:
相關問題
- 1. Javaw仍然創建一個控制檯窗口;爲什麼是這樣?
- 2. 爲什麼ConnectionString設置的範圍總是被強制爲「Application」?
- 3. 這個對象的範圍是什麼
- 4. 什麼是Zend的控制檯?你什麼時候使用這個控制檯?
- 5. 而不是這個窗口的主幹範圍
- 6. MSVC++不止一個控制檯窗口
- 7. 這指的是Angularjs中另一個控制器的$範圍
- 8. 這是爲什麼不打印到控制檯
- 9. 爲什麼[範圍(10)]和列表(範圍(10))不一樣?
- 10. VSCode是否有像Sublime Text控制檯這樣的控制檯?
- 11. 是否有可能使一個Firebug的控制檯自動化?
- 12. 是否有Firebug控制檯-vsdoc.js?
- 13. 爲什麼窗口範圍內的調用函數與對象範圍不同
- 14. WatchKit:什麼是「Kermit」,這個控制檯日誌語句是什麼意思?
- 15. iOS - 這個UIPageViewController是由UISegmentedControl控制的,還是這是什麼?
- 16. 這個控制檯錯誤的解決方案是什麼?
- 17. 這是一個什麼樣的關鍵?
- 18. 這是什麼控制?
- 19. 這是什麼iOS控制?
- 20. 「窗口」總是在JavaScript範圍鏈的頂部?
- 21. 爲什麼Angular(1.5)組件總是有一個孤立的範圍?
- 22. Windows上的C++ - 控制檯窗口閃爍並消失。這是怎麼回事?
- 23. 爲什麼這不超出範圍
- 24. LoaderManager的範圍是什麼?
- 25. android:largeScreens的範圍是什麼?
- 26. @EnableTransactionManagement的範圍是什麼?
- 27. PTRACE_TRACEME的範圍是什麼?
- 28. #define的範圍是什麼?
- 29. 爲什麼有一個窗體的OnResizeBegin,但不是控件?
- 30. 爲什麼UtteranceProgressListener不是一個接口?
謝謝你的回答..但是,一個問題:如果我沒有陷入斷點,「這個」可以不是控制檯中的窗口嗎? – 2009-11-27 01:13:04