在javascript中向变量添加属性

在javascript中向变量添加属性,javascript,Javascript,考虑以下代码: var str = "abc"; str.foo = 123; // write - ignored 123 str.foo // read undefined 为什么我没有定义?该属性不应该输出123?它输出未定义的原因是什么 既然var str是一个字符串,为什么属性不会再次显示 我们不能向字符串中添加属性和方法吗?您将str定义为字符串,而不是对象。也许你想做这样的事: var o = {}; o.str = "abc"; o.foo = 123; 有关详细信息

考虑以下代码:

var str = "abc";
 str.foo = 123;  // write - ignored
123
 str.foo  // read
undefined
为什么我没有定义?该属性不应该输出
123
?它输出未定义的原因是什么

既然
var str
是一个字符串,为什么属性不会再次显示


我们不能向字符串中添加属性和方法吗?

您将str定义为
字符串,而不是
对象。也许你想做这样的事:

var o = {};
o.str = "abc";
o.foo = 123;
有关详细信息,请参见此问题的选定答案:


str=新字符串(“abc”);这个问题即将以重复的方式结束。请参阅此处,了解为什么不应回答这些类型的问题。@frontendmagic我刚刚删除了一条关于你为什么要写这些问题的评论,但经过快速测试,它非常清楚<代码>新字符串的类型(“abc”)
对象
,而
类型的“abc”
字符串
。谢谢你的评论!