[英]Add custom property to string
我经常使用函数元属性,就像这样
var func = function(){}
func.meta = "meta";
console.log(func);//output: function func()
console.log(func.meta);//output: "meta"
但是当我尝试以类似的方式使用字符串时,它不起作用。
var string = "string";
string.meta = "meta";
console.log(string);//output: "string"
console.log(string.meta);//output: undefined
为什么以及如何解决这个问题?
您的字符串是原始值。 它接受属性是因为有一些魔法暂时将它转换为一个对象(或者你可以这样想)。 因此,之后的分配没有用。
您可以使用new String
构造函数来创建一个您可以实际保留的对象,但这对JavaScript来说非常不寻常。
var string = new String("string");
string.meta = "meta";
console.log(string);
console.log(string.meta);//output: "meta"
string
本身的控制台输出实际上可能不会显示您想要的内容,但实际上它应该在串联中工作。
请记住, typeof
将不再为您提供"string"
。 它现在将成为"object"
。
就个人而言,我只是创建一个自定义构造函数,如果你需要存储多个字符串本身,然后使用它知道对象由你的字符串和元数据组成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.