javascript - Firebug 控制台窗口范围。为什么 "this"不总是相同的?

标签 javascript debugging firebug

Firebug 控制台作用域。为什么“这个”不总是一样的?不应该一直是“window”吗?

最佳答案

控制台中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 之间没有区别。因此,您可以在调试时使用控制台调整变量和属性的值。

关于javascript - Firebug 控制台窗口范围。为什么 "this"不总是相同的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1803660/

相关文章:

javascript - Nodejs 中变量作用域的误解

javascript - 使用javascript分配随机选择的颜色

QT Creator _ITERATOR_DEBUG_LEVEL 不匹配

debugging - GDB "layout src"终端窗口输出损坏

java - Eclipse 插件,用于自动创建 Java 代码以重现对象的状态,以便在调试时进行快速测试

firebug - 增加 Firebug 中的字体大小?

javascript - 有没有办法确定在 Firebug 或网络检查器中发出 XHR 的行?

javascript - 如何在文本框中显示 JavaScript 函数返回?

html - IE 的 Firebug 替代品

javascript - 如何从firebase实时数据库检索数据?