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 = 「元」))'不使用屬性;它使用賦值表達式的返回值。 –