2017-08-06 33 views
0

是否可以在JS中將對象元素用作函數中的參數?對象的元素作爲函數的參數

下面是一個例子,這是行不通的:

var someFunc = function(a, b) { 

    var items = { 
    a: 1, 
    b: 2 
    } 

    return items.a; 
}; 
+1

你的意思是'項目[A]'?另外,函數params與'items'中的不同。 –

+0

您目前正在將'items.a'設置爲'1'並返回'items.a',因此始終爲'1'。 'alert(someFunc())'會提醒'1',不管你傳遞給函數的是什麼。參數'a'從不使用。您是否打算將'items.a'設置爲此參數的值?在這種情況下,使用'items = {a:a,b:b};返回items.a;' –

回答

0

,你可以調用函數的方式,一個具有值「a」,但你正在使用錯誤的方式就可以得到價值從項目對象。 items.a表示您試圖從總是返回1的項目訪問名爲'a'的項。使用項[a]訪問存儲在變量a中的項。

var someFunc = function(a, b) { 

     var items = { 
     a: 1, 
     b: 2 
     } 

     return items[a]; 
    }; 
someFunc('a','b'); 
0

使用ES6,您可以使用computed property names

var someFunc = function(a, b) { 
 
     return { [a]: 1, [b]: 2 }; 
 
    }; 
 

 
console.log(someFunc('foo', 'bar'));

如果沒有可用的,你可以使用帶支架的符號作爲property accessor一個簡單的任務。

var someFunc = function(a, b) { 
 
     var temp = {}; 
 
     temp[a] = 1; 
 
     temp[b] = 2; 
 
     return temp; 
 
    }; 
 

 
console.log(someFunc('foo', 'bar'));

相關問題