Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法加上一句;“子属性”;到JS中的变量?_Javascript_Variables_Properties_Getter - Fatal编程技术网

Javascript 有没有办法加上一句;“子属性”;到JS中的变量?

Javascript 有没有办法加上一句;“子属性”;到JS中的变量?,javascript,variables,properties,getter,Javascript,Variables,Properties,Getter,我在问自己是否有一种方法可以将类似子属性的东西添加到变量中。以下是我想要实现的一个例子: var variable = 5; variable.property = "what ever..."; console.log(variable); //outputs 5 console.log(variable.property); //outputs "what ever..." (数据类型不重要…) 是否有可能通过getter或Proxys实现这一点,我的变量是否需要是对象 希望您能提供帮助,

我在问自己是否有一种方法可以将类似子属性的东西添加到变量中。以下是我想要实现的一个例子:

var variable = 5;
variable.property = "what ever...";
console.log(variable); //outputs 5
console.log(variable.property); //outputs "what ever..."
(数据类型不重要…)

是否有可能通过getter或Proxys实现这一点,我的变量是否需要是对象


希望您能提供帮助,并且有一种方法可以做到这一点:)

您可以向指向
对象的任何变量添加特殊属性。如果您对使用类对象感兴趣,还应该阅读
prototype

但是,您的示例使用数字5,这是一个原语。不能将属性指定给基本体:


也可以看到这个答案:

您可以先将变量设置为{value:5},然后使用variable.value进行输出5@Brian是的,但这不是我想要的…如果变量不是基元类型(例如,
Number
String
Boolean
),那么就可以了(除了你的第二个
var
关键字不合适之外)其他所有的东西都是从
Object
开始的,这是正常的。(,顺便说一句,但在这里可能不重要。)这可能并不总是一个好主意,但它应该会起作用。对于原语,您可以设置值,但它会立即消失。虽然您可以修改Number.prototype,但不能直接在原语上设置值。如果这个问题不仅仅是出于好奇,这也是不明智的。