在javascript整数中存储额外属性

在javascript整数中存储额外属性,javascript,javascript-objects,Javascript,Javascript Objects,考虑一下node.js REPL会话的摘录: > var a = 5; undefined > a.b = true; true > a.b; undefined 目的是在a中存储额外的属性,如果成功,将使最后一行为true,而不是未定义的。我该怎么做?你不能那样做。数字在JavaScript中不是对象。当你写作时: a.b = true; 运行时会自动实例化一个Number实例。那是一个物体。您将该对象上的“b”属性设置为true,然后将其忘记 现在,您可以执行以下操作:

考虑一下node.js REPL会话的摘录:

> var a = 5;
undefined
> a.b = true;
true
> a.b;
undefined

目的是在
a
中存储额外的属性,如果成功,将使最后一行为
true
,而不是
未定义的
。我该怎么做?

你不能那样做。数字在JavaScript中不是对象。当你写作时:

a.b = true;
运行时会自动实例化一个Number实例。那是一个物体。您将该对象上的“b”属性设置为
true
,然后将其忘记

现在,您可以执行以下操作:

var a = new Number(5);
a.b = true;
alert(a.b);

它会很好地工作。

@Bergi可能不会:要知道这两个问题是相同的,就需要了解javascript中的类型,而问这个问题的人(比如我自己)可能不知道。你是对的,可能是更好的复制品。即使我找不到它,我相信已经存在一个很好的规范问题。