如何使用方括号调用函数?
100['toString']//function toString() { [native code] }
100['toString']['length']//1
这里到底发生了什么?
最佳答案
这是括号符号。可以使用点或括号表示法访问任何属性。因此,由于 toString
是一个属性,您可以使用括号表示法访问它。
对于数字,您也可以使用点语法,但您必须向解析器明确指出点不是小数点。例如,两个点:
100..toString() // equivalent to 100.0.toString
为了避免这种令人困惑的数字语法,括号版本是首选。但在大多数情况下,点表示法允许更简洁和更清晰的语法,尽管您可以在可以使用点时始终使用方括号。
括号语法的好处是:
- 它应该用于访问存储在变量中的名称的属性
- 它允许访问名称不是有效标识符的属性。
以及第二个问题的答案。
why does 100['toString']['length'] not evaluate to three?
因为100['toString']
是继承自Number.prototype
的方法。因此这是一个函数。函数的 length 属性是它接受的显式参数的数量。 Number.prototype.toString
接受一个基数参数,唯一的一个。所以结果是 1
。
关于javascript - 奇怪地使用方括号调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27217035/