可以重用函数参数作为对象吗?

时间:2015-11-27 20:20:34

标签: javascript function

是否可以这样做?

function getVariable(elem) {
    return $scope.elem;
}

或者这个;

function getField(field) {
   return data[0].field;
}

getField('price')应返回等效于data[0].price

的内容

getVariable('id')应该返回$scope.id

的值

经过实验,我发现例如getField('price')正在寻找函数中的data[0].field - 而不是data[0].price

2 个答案:

答案 0 :(得分:2)

在Javascript中使用点符号进行对象属性访问时,它会逐字地评估名称。正如您所发现的,它总是在寻找一个名为" field"或者" elem"。

如果需要括号语法,即:

function getField(fieldName) {
  return data[0][fieldName];
}

与您的其他功能相同。

答案 1 :(得分:1)

试试这样:

(function(){
    var data = {
            'id' : 123,
            'name' : 'Toyata Camarry 2009',
            'price' : 14500
    },
    fxArgObject = function(field) {
        return data[field];
    };

    var price = fxArgObject('price');
    console.log(price);
})();