2009-11-26 44 views

回答

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行時,控制檯中的thisx變量所持有的對象。 IOW在執行上下文中的this與控制檯之間沒有區別。因此,您可以在調試時使用控制檯調整變量和屬性的值。

+0

謝謝你的回答..但是,一個問題:如果我沒有陷入斷點,「這個」可以不是控制檯中的窗口嗎? – 2009-11-27 01:13:04

2

在直接調用而不 明確所有者對象功能,使的的 值是默認 對象(在瀏覽器窗口)。

在使用該方法 調用語法調用的函數,像 objname.myFunction()objname['myFunction'](),導致要OBJNAME的這個 值。

查看更多ABOT調用函數在JavaScript

JavaScript, 5 ways to call a function

+0

這個答案准確,因爲它實際上並沒有解決問題,因爲它涉及到控制檯的行爲。 – AnthonyWJones 2009-11-26 13:55:31

相關問題