2014-05-09 13 views
1

考虑从node.js的REPL会话此摘录:存放在一个javascript整数额外的属性

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

意图是额外的属性存储在a,而如果成功将使最后一行是true代替undefined。我怎样才能做到这一点?

+1

@Bergi可以说没有:知道这两个问题是相同的需要JavaScript中的类型的知识,这个问题的提问者(如我)可能不知道。 – Trindaz

+0

你说得对,[为什么我不能在javascript中为字符串对象添加属性?](https://stackoverflow.com/questions/5201138/why-cant-i-add-properties-to-a-string -object-in-javascript/5201148#5201148)可能是更好的副本。即使我找不到它,我相信已经存在一个很好的经典问题。 – Bergi

回答

2

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

a.b = true; 

什么情况是运行时自动实例化一个数字实例。这是一个对象。您将该对象上的“b”属性设置为true,然后将其遗忘。现在

,你可以这样做:

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

,它会工作得很好。