看一下屏幕截图...
我试验这个的原因是因为我做了一个简单的谷歌搜索如何检查参数是否是一个函数,我发现了这个......
var getClass = {}.toString;
...
function isFunctionA(object) {
return object && getClass.call(object) == '[object Function]';
}
来源:http://jsperf.com/alternative-isfunction-implementations/4
那么我输入的内容和示例源代码之间有什么区别呢?为什么 Chrome 在仅输入 {}.toString
时会报错,但在括号内时却能正常工作?
最佳答案
{} 开头的语句有歧义,是空代码块还是对象?该定义通过将其定义为代码块来解决歧义,在语句的开头使用 {} 作为对象通过将其括在括号中使其成为表达式:({})
另请参阅对 Why does accessing a property directly on an Object literal throw a SyntaxError? 的回答
关于javascript - Chrome 控制台中的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12776051/