2017-01-09 71 views
1

我在问自己是否有办法将一个子属性添加到变量中。这里是什么,我想才达到一个例子:有没有办法给JS中的变量添加“subproperties”?

var variable = 5; 
variable.property = "what ever..."; 
console.log(variable); //outputs 5 
console.log(variable.property); //outputs "what ever..." 

(数据类型并不重要......)

有可能的方式来实现这一目标用干将或Proxys,和我做变量需要是一个对象还是不是?

希望你能帮助,有一个办法做到这一点:)

+0

你可以设置变量{值:5}开始,然后使用variable.value输出5 – Brian

+0

@布赖恩是的,但是这不是我想... –

+0

如果变量不是原始类型(例如'Number','String','Boolean'),那么这将起作用(除了第二个'var'关键字不合适)。其他所有东西都会下降从'对象',这是正常的。 ([也有例外](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze),顺便说一下,但这里可能不重要)。它可能并不总是一个好主意,但它应该工作。使用原语,您可以设置该值,但它会立即消失。 –

回答

1

您可以添加临时属性,它指向的Object任何变量。你也应该在prototype,如果你有兴趣使用类状物体读了起来:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype

然而,你的例子使用了5号,这是一个原始。您不能分配属性原语:https://javascriptweblog.wordpress.com/2010/09/27/the-secret-life-of-javascript-primitives/

也看到这样的回答:https://stackoverflow.com/a/509780/71906

相关问题