我的代码:
'use strict';
var foo=function(){
alert(this);
}
var bar = {
baz:foo,
};
var x = bar.baz;
x();//1
当我直接执行时,一切正常,警告undefined
。当我在 (1) 处插入断点时,按 F11 两次,提示 window
。
谁能解释一下?非常感谢。
最佳答案
我创建了 jsfiddle并检查它。我在 1
中添加了断点,当我使用 F11 console.log
或 alert
时(我更改了 alert 以登录最后一个示例)告诉我 undefined
...但随后我在断点处停止并在浏览器开发工具控制台中调用 x()
结果是 Mac OS X/Chrome 最新版本中的作用域对象,结果是 undefined
适用于 Mac OS X/Firefox las 版本。
因此在开发工具控制台等非标准线程中执行的结果是不同的,与javascript语言无关。
关于javascript,严格模式,断点对结果有影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21085262/