2017-01-09 11 views
1

サブプロパティーのようなものを変数に追加する方法があるかどうかを私は自問していました。ここで私はachiveしたいものの一例である:JSの変数に「サブプロパティ」を追加する方法はありますか?

var variable = 5; 
variable.property = "what ever..."; 
console.log(variable); //outputs 5 
console.log(variable.property); //outputs "what ever..." 

(データ型は...重要ではありません)

は多分、この使用してゲッターかのproxysをachiveする方法がある、と私を行います変数はオブジェクトである必要がありますか?

うまくいけば、あなたは助けることができると、これを行う方法はあります:)

+0

あなたのように変数を設定することができます{値:5}最初は、その後、5 – Brian

+0

@Brianええ出力にvariable.valueを使用していますが、それは何ではありません私がしたい... –

+0

変数がプリミティブ型( 'Number'、' String'、 'Boolean'など)でなければ、それは動作します(ただし、2番目の' var'キーワードは適切ではありません)。これは正常な「オブジェクト」からのものです。 ([例外があります](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze)、ここでは重要ではないかもしれませんが)良い考えですが、うまくいくはずです。プリミティブでは、値を設定できますが、すぐに消えます。 –

答えて

1

あなたはObjectを指す任意の変数にアドホックプロパティを追加することができます。また、あなたはクラスのようなオブジェクトを使用することに興味がprototype場合にお読みください。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype

はしかし、あなたの例では、プリミティブで数5を、使用しています。あなたはプリミティブにプロパティを割り当てることはできません。https://javascriptweblog.wordpress.com/2010/09/27/the-secret-life-of-javascript-primitives/

もこの答えを参照してください。https://stackoverflow.com/a/509780/71906

関連する問題