Javascript - 函数

时间:2017-06-05 12:53:06

标签: javascript reference

我有一个名为getComponent的对象原型的函数,它返回this.components[name]

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

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

然后我有一些代码可以获取组件并将其设置为其他内容......

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

这显然会提升Uncaught ReferenceError: Invalid left-hand side in assignment

是否有设置返回值的值?

我不想直接访问对象变量:foo.components.Sprites = []

提前致谢,

大卫

1 个答案:

答案 0 :(得分:2)

没有

您可以为变量,常量和对象的属性赋值。

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

或者:

  • 创建一个setComponent方法,该方法接受两个参数,并将第二个参数的值分配给属性。
  • 将您的方法重命名为component并让它采用可选的第二个参数,然后根据传递的参数数量,充当setComponentgetComponent