你可以做到
"a".charAt(0);
如果能做的话,那会不会很好:
42.isMeaningOfLife();
嗯,或者说更实用的东西,比如
myNumber.round();
当然,我想到的第一件事就是这将是一场表现难,但显然这不是JS编译器的工作原理。检查此MDN article on JS strings:
请注意,JavaScript区分String对象和 原始字符串值。 (布尔和数字也是如此。)
字符串文字(用双引号或单引号表示)和字符串 在非构造函数上下文中从String调用返回(即,没有 使用new关键字)是原始字符串。 JavaScript自动 将基元转换为String对象,以便可以使用它 原始字符串的字符串对象方法。在某种情况下 方法将在原始字符串或属性查找上调用 发生时,JavaScript会自动换行字符串原语和 调用方法或执行属性查找。
答案 0 :(得分:4)
我认为支持语法很简单。在对它们执行对象操作时,字符串和数字都包装在各自的对象包装器(String
,Number
)中。
Number.prototype.isTheMeaningOfLife = function () {
return this.valueOf() === 42;
};
(42).isTheMeaningOfLife(); //true
42.0.isTheMeaningOfLife(); //true