使用方括号调用函数是如何工作的?
100['toString']//function toString() { [native code] }
100['toString']['length']//1
这里到底发生了什么?
这是括号表示法。任何属性都可以使用点或方括号表示法来访问。所以自从toString
是一个属性,您可以使用括号表示法访问它。
对于数字,您也可以使用点语法,但您必须向解析器明确该点不是小数点。例如与two dots:
100..toString() // equivalent to 100.0.toString
为了避免这种令人困惑的数字语法,最好使用括号版本。但在大多数情况下,点表示法允许更简洁、更清晰的语法,尽管在可以使用点时始终可以使用括号。
括号语法的好处是:
- 它应该用于访问名称存储在变量中的属性
- 它允许访问名称不是有效标识符的属性。
以及第二个问题的答案。
为什么 100['toString']['length'] 的计算结果不等于 3?
Because 100['toString']
是一个继承自的方法Number.prototype
。因此这是一个函数。函数的 length 属性是它接受的显式参数的数量。Number.prototype.toString采用唯一的基数参数。所以结果是1
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)