在函数中使用变量值作为变量名

时间:2012-03-23 08:00:10

标签: javascript node.js mongodb

在下面的代码中:

DbModels.prototype.updateById = function(_collection, id, field, value, callback) {
    this.getCollection(_collection, function(error, sel_collection) {
      if( error ) callback(error)
      else {
        sel_collection.update({_id: ObjectID.createFromHexString(id)}, {$set: {$[field].value:value}}, function(error, updated) {
          if( error ) callback(error)
          else callback(null, updated);
        });
      }
    });
};

我想使用变量字段的值作为$ set中变量的名称。我尝试使用以下代码$ [field] .value(正如您在上面的代码中看到的),这不起作用。有任何建议如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:6)

javascript中没有像php ${$var_name};

那样的语法

可以使用this[var_name]window[var_name](对于浏览器中的全局变量),但是除了eval之外,没有办法在当前范围内获取局部变量,这肯定被认为是坏的。 / p>

考虑对变量“scoping / namespacing”使用散列(对象)。