1
我经常使用的功能元的属性,即像这样添加自定义属性字符串
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
为什么以及如何解决这个问题?
@zeroflagL:你有没有完成到句子结尾?无论如何,这是思考JS中原语的财产访问的有用方式。即使规范也无法告诉你具体的实现是什么。 –
让我改一下我的发言:在ECMAScript中5实际上可能会创建一个对象,但_“的实现可能会选择避免实际的创造,瞬态对象” _。至于ECMAScript 2015,我同意你评论的最后一个陈述。 BTW:已创建的属性实际上可以使用:'的console.log((string.meta = “元”))'将记录 “元”。 – zeroflagL
@zeroflagL:只是提醒一下,这是一个社区wiki。如果您认为合适,非常欢迎您对其进行改进。 :-)然而,'的console.log((string.meta = “元”))'不使用属性;它使用赋值表达式的返回值。 –