传递给函数的字符串作为对象属性名称

时间:2013-06-25 20:48:42

标签: javascript

在下面的函数中,我想传递两个参数。 instance表示对象,prop表示对象属性名称。

door.x = 20; // door['x'] refers to the same
key(door, 'x');
function key(instance, prop) {
    Tween.get(instance, {override: true}).to({prop: -150}, instance[prop]);
}

因为我需要能够在某一时刻引用door['x'](这是写door.x的另一种方式),x总是需要是一个字符串。但是,这里需要使用相同的x作为对象属性名称,但我不能在那里使用字符串,因为代码不起作用:

Tween.get(door, {override: true}).to({'x': -150}, door['x']); // does not work because a string has been passed as an object property name

我真正想要的是:

Tween.get(door, {override: true}).to({x: -150}, door['x']); // works

所以,我的问题是:是否有某种方法允许我“解串”一个字符串?或者可能还有其他任何解决方案吗?

1 个答案:

答案 0 :(得分:3)

这样的东西?

function key(instance, prop) {
    var obj = {}; 
    obj[prop] = -150; 
    Tween.get(instance, {override: true}).to(obj, instance[prop]);
}