在JavaScript中,如果“;字符串是对象”;那为什么数字不也一样呢?
你能行在JavaScript中,如果“;字符串是对象”;那为什么数字不也一样呢?,javascript,Javascript,你能行 "a".charAt(0); 如果你能做到: 42.isMeaningOfLife(); 嗯,或者更确切地说是更实用的东西,比如 myNumber.round(); 当然,我想到的第一件事是,这将是一个性能猪,但显然这不是JS编译器的工作方式。选中此项: 请注意,JavaScript区分字符串对象和 基本字符串值。(布尔和数字也是如此。) 字符串文字(用双引号或单引号表示)和字符串 从非构造函数上下文中的字符串调用返回(即,没有 使用新关键字)是基本字符串。自动JavaScript
"a".charAt(0);
如果你能做到:
42.isMeaningOfLife();
嗯,或者更确切地说是更实用的东西,比如
myNumber.round();
当然,我想到的第一件事是,这将是一个性能猪,但显然这不是JS编译器的工作方式。选中此项:
请注意,JavaScript区分字符串对象和
基本字符串值。(布尔和数字也是如此。)
字符串文字(用双引号或单引号表示)和字符串
从非构造函数上下文中的字符串调用返回(即,没有
使用新关键字)是基本字符串。自动JavaScript
将基本体转换为字符串对象,以便可以使用
基本字符串的字符串对象方法。在
方法将在基元字符串或属性查找上调用
发生时,JavaScript将自动包装字符串原语并
调用该方法或执行属性查找
我相信这是一个支持语法的简单问题。对字符串和数字执行对象操作时,它们都被包装在各自的对象包装器(
String
,Number
)中
您可以(42).isMeaningOfLife()代码>
Number.prototype.isTheMeaningOfLife = function () {
return this.valueOf() === 42;
};
(42).isTheMeaningOfLife(); //true
42.0.isTheMeaningOfLife(); //true