Firebug控制台窗口范围.为什么"这个"总是不一样?

And*_*ena 6 javascript debugging firebug

Firebug控制台范围.为什么"这个"总是不一样?它不是一直都是"窗口"吗?

Ant*_*nes 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);
}
Run Code Online (Sandbox Code Playgroud)

...

<img src="thing.gif" onclick="outer()" />
Run Code Online (Sandbox Code Playgroud)

如果您在该行上放置一个断点x = {n:12},切换到控制台您将发现该this窗口。但是,当您进入控制台中的alert行时this,就是变量所保存的对象xthisIOW执行上下文和控制台之间没有区别。因此,您可以在调试时使用控制台调整变量和属性的值。