JS将对象属性作为函数的参数传递

时间:2016-09-12 11:37:51

标签: javascript

我无法将对象属性fullName作为函数setData的参数传递。

在模态窗口中输入一些值后,应调用函数setData

我想使用函数valueuser.fullName设置为setData

对象user = { fullName: "Full Name", position: "Manager" }

的示例
function setData ( data ) {
  var user,
    value = prompt("Value", "");

  if ( localStorage.getItem("user") ) {
    user = JSON.parse( localStorage.getItem("user") );
  }

  user.data = value; // user.fullName = value; - as an example

  if ( value ) {
    localStorage.setItem("user", JSON.stringify( user ) );
    location.reload();
  }
}

document.getElementById("full-name-button").onclick = function() {
  setData( "fullName" );
};

document.getElementById("position").onclick = function() {
  setData( "position" );
};

帮助我,如何传递对象属性,因为我不知道如何做到这一点。

2 个答案:

答案 0 :(得分:2)

要使用运行时定义的属性名称,请使用括号表示法,而不是点符号:

user[data] = value;

答案 1 :(得分:1)

分配对象属性有两种方法。

"静态"方式(你知道属性名称):user.fullName = "Bob";

"动态" way(属性名称由运行时表达式给出):user['fullName'] = "Bob";