向字符串添加自定义属性
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"
。
我个人认为,如果你需要存储比字符串本身更多的东西,然后在知道对象是由字符串和元数据组成的情况下使用它,我会创建一个自定义构造函数。
相关文章:
- 如何创建自定义属性以添加if.bind
- 在 Javascript 生成的列表中,如何将自定义属性添加到 标记
- 将自定义属性添加到 vuejs 组件
- 使用原型对象向javascript对象添加自定义属性和方法的建议
- 如何向AlloyUI表单生成器添加自定义属性
- 将自定义属性添加到现有对象
- 通过 Javascript 将自定义属性添加到 HTML 元素
- 我可以向 html 元素添加自定义属性吗?
- 如何将自定义属性添加到 HTML 环境,该属性将默认为元素的每个新实例上的空对象
- 添加自定义属性以更好地分离 JavaScript 和 HTML
- 在 ASP.NET 中添加自定义属性.在 JQuery 中访问它
- 通过 Scripts.Render 将自定义属性添加到脚本标记
- 将动态创建的下拉列表的自定义属性值添加到另一个元素
- 根据字段数添加具有自定义属性的字段
- Dynatree jquery插件向节点添加自定义属性
- 在图像标记IE11上添加自定义属性时无法发布表单
- 使用jquery日期选择器向日期添加自定义属性
- querySelectorAll找不到具有自定义属性的动态添加元素
- 添加自定义属性createdElement - jQuery
- 为jQuery对象添加自定义属性