javascript、严格模式、断点对结果有影响吗?
我的代码:javascript、严格模式、断点对结果有影响吗?,javascript,Javascript,我的代码: 'use strict'; var foo=function(){ alert(this); } var bar = { baz:foo, }; var x = bar.baz; x();//1 当我直接执行时,一切正常,警报未定义。当我在(1)处插入断点时,按F11键两次,提醒窗口 有人能解释一下吗?非常感谢。我创建并检查了。我在1和使用F11控制台时添加了断点。log或alert(我将alert更改为在最后一个示例中登录)show meundefined…但随后
'use strict';
var foo=function(){
alert(this);
}
var bar = {
baz:foo,
};
var x = bar.baz;
x();//1
当我直接执行时,一切正常,警报未定义
。当我在(1)处插入断点时,按F11键两次,提醒窗口
有人能解释一下吗?非常感谢。我创建并检查了。我在1
和使用F11控制台时添加了断点。log
或alert
(我将alert更改为在最后一个示例中登录)show meundefined
…但随后我在断点处停止并调用浏览器开发工具控制台x()
结果是Mac OS X/Chrome最新版本中的scope对象,而Mac OS X/Firefox las版本的结果是未定义
因此,在非标准线程(如dev tools控制台)中执行的结果是不同的,与javascript语言无关。更正代码first@Phoenix,我知道代码看起来很奇怪,但没有错误,执行正常。那么它有什么问题?你能说清楚吗?@meagar注意到使用严格的,没有断点,警告未定义在foo声明后,你应该用关闭语句代码>。你能不能把代码的其他部分显示出来,因为在我的例子中它是有效的perfectly@Phoenix所有代码都在这里。我和我的朋友得到相同的结果。没有断点,警报未定义;当断点位于(1)时,按F11,警报窗口谢谢。但调试模式下的结果与标准模式下的结果不同,这太奇怪了……有没有文章对此进行解释?因为浏览器使用的是调试线程包装器,比如Gecko使用或Blink使用自己的V8 shell/debug服务器。