4

看一下截图...

截屏

我之所以尝试这个是因为我做了一个简单的谷歌搜索来检查一个参数是否是一个函数,我发现了这个......

var getClass = {}.toString;
...
function isFunctionA(object) {
    return object && getClass.call(object) == '[object Function]';
}

来源:http: //jsperf.com/alternative-isfunction-implementations/4

那么我输入的内容和示例源代码有什么区别?为什么 Chrome 在输入 just 时会出错{}.toString,但在括号内时却可以正常工作?

4

1 回答 1

4

语句开头的 {} 有歧义,是空代码块还是对象?该定义通过将其定义为代码块来解决歧义,在语句的开头使用 {} 作为对象,通过将其括在括号中使其成为表达式:({})

另请参阅为什么直接在 Object 文字上访问属性会引发 SyntaxError?

于 2012-10-08T06:20:26.833 回答