2017-06-05 20 views
0

によって返される参照のAsign値が、私はオブジェクトのプロトタイプの機能はthis.components[name]Javascriptを - 機能

function Foo() 
{ 
    this.components = {"Scripts": [...], "Sprites": [...], "States": {...}, etc }; 
} 

Foo.prototype.getComponent = function(name) 
{ 
    return this.components[name]; 
} 

を返すgetComponent呼ばれてきた後、私はコンポーネントを取得し、何か他のものに設定しますいくつかのコードを持っています。 ..

var foo = new Foo(); 
foo.getComponent("Sprites") = []; 

これは明らかにUncaught ReferenceError: Invalid left-hand side in assignmentを発生させます。

返された値の値を設定する必要はありますか?

私はオブジェクト変数に直接アクセスしたくありません:foo.components.Sprites = []。事前に

おかげで、

デビッド

+1

値を更新するための 'getComponent'メソッドのように' setter'メソッドを作成することができます –

答えて

2

あなたは、変数、定数にして、オブジェクトのプロパティに値を割り当てることができます

号。

関数が値を返します。変数、定数、またはプロパティを返すことはありません(値を取得するためにそれらを読み取ったとしても)。


いずれか:

  • 二つの引数を取り、プロパティへの第2の1の値を代入setComponent方法を作成します。
  • メソッドの名前をcomponentに変更し、オプションの第2引数を取り、渡された引数の数に応じてsetComponentまたはgetComponentのいずれかとして動作させます。
+0

ありがとう、これは完全に動作します! –