Использовать значение переменной как имя переменной в функции - PullRequest
0 голосов
/ 23 марта 2012

В коде ниже:

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 Ответ

6 голосов
/ 23 марта 2012

В javascript нет такого синтаксиса, как php ${$var_name};

Можно использовать this[var_name] или window[var_name] (для глобальных переменных в браузерах), но нет способа получить локальную переменную в текущей области, кроме eval, что определенно считается плохим.

Рассмотрите возможность использования хеша (объекта) для переменной "scoping / namespacing".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...