100.toString vs 100 ['toString']

时间:2010-03-11 22:09:43

标签: javascript

100['toString'] //does not fail
100.toString //fails

为什么?

100.toString与100.toString()不同。那么为什么在第二种情况下我没有将函数作为返回值?

3 个答案:

答案 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