繁体   English   中英

添加自定义属性到字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM