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. 爲什麼總是這樣?
- 3. 什麼是Zend的控制檯?你什麼時候使用這個控制檯?
- 4. 這個對象的範圍是什麼
- 5. 爲什麼ConnectionString設置的範圍總是被強制爲「Application」?
- 6. 窗口的目的是什麼?在控制檯中$?
- 7. 而不是這個窗口的主幹範圍
- 8. MSVC++不止一個控制檯窗口
- 9. 爲什麼WPF窗口總是得到默認樣式?
- 10. 保持一個控制另一臺總是在Windows窗體.NET
- 11. 爲什麼範圍$ apply()調用$ rootScope。$ digest()而不是這個。$ digest()?
- 12. 這是爲什麼不打印到控制檯
- 13. 這指的是Angularjs中另一個控制器的$範圍
- 14. VSCode是否有像Sublime Text控制檯這樣的控制檯?
- 15. 爲什麼[範圍(10)]和列表(範圍(10))不一樣?
- 16. 這些變量的範圍是什麼?
- 17. 是否有可能使一個Firebug的控制檯自動化?
- 18. 是否有Firebug控制檯-vsdoc.js?
- 19. 爲什麼這個窗口不可見?
- 20. 這個窗口爲什麼不居中?
- 21. WatchKit:什麼是「Kermit」,這個控制檯日誌語句是什麼意思?
- 22. iOS - 這個UIPageViewController是由UISegmentedControl控制的,還是這是什麼?
- 23. 爲什麼窗口範圍內的調用函數與對象範圍不同
- 24. 爲什麼IE8不是這樣的JS?
- 25. 這個控制檯錯誤的解決方案是什麼?
- 26. 這是什麼iOS控制?
- 27. 這是什麼控制?
- 28. 這是一個什麼樣的關鍵?
- 29. 「窗口」總是在JavaScript範圍鏈的頂部?
- 30. 爲什麼Angular(1.5)組件總是有一個孤立的範圍?
謝謝你的回答..但是,一個問題:如果我沒有陷入斷點,「這個」可以不是控制檯中的窗口嗎? – 2009-11-27 01:13:04