100['toString'] //does not fail
100.toString //fails
为什么?
100.toString与100.toString()不同。那么为什么在第二种情况下我没有将函数作为返回值?
答案 0 :(得分:17)
第二行失败,因为它被解析为数字“100”,后跟“toString”。
要使用点表示法,以下任何一项都可以使用:
(100).toString
100.0.toString
100..toString
var a = 100;
a.toString
如果您尝试调用 toString
函数,则还需要包括括号:
(100).toString()
100.0.toString()
100..toString()
var a = 100;
a.toString()
我更喜欢使用括号(或变量,如果我已经有一个变量),因为替代品可能会让人感到困惑和不直观。
答案 1 :(得分:5)
改为使用(100).toString
。
答案 2 :(得分:1)
Parens是最好的方式。你也有与函数定义相同的问题。
function () {}.call() => fails
(function () {}).call() => succeeds