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
行时,控制台中的 this
是 x
变量持有的对象。 IOW 在执行上下文和控制台中的 this
之间没有区别。因此,您可以在调试时使用控制台调整变量和属性的值。
关于javascript - Firebug 控制台窗口范围。为什么 "this"不总是相同的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1803660/