2017-06-05 62 views
0

返回我有一个对象的原型的函数调用getComponent返回this.components[name]使用Javascript - 按功能

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

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

然后,我有一些代码,获取组件并将其设置为别的东西的参考ASIGN值。 ...

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

这显然引发了Uncaught ReferenceError: Invalid left-hand side in assignment

有无论如何设置返回值的值?我不想直接访问对象变量:foo.components.Sprites = []

由于提前,

大卫

+1

您可以像'getComponent'方法一样创建'setter'方法来更新值 –

回答

2

您可以分配给变量,常量和对象的属性。

函数返回一个值。它永远不会返回变量,常量或属性(即使它读取其中一个来获取值)。


或者:

  • 创建setComponent方法,该方法有两个参数,并分配所述第二一到属性的值。
  • 将您的方法重命名为component,并让它采用可选的第二个参数,然后根据传递的参数数量,作为setComponentgetComponent
+0

谢谢! –