Javascript:设置对象属性

wil*_*age 5 javascript object set

我希望能够这样做:

var user1 = {
  name: 'John',
  gender: 'male'
}


var user2 = {
  name: 'James',
  gender: 'male',
  email: 'james@gmail.com'
}

user1.someSetMethod({email: 'john@gmail.com'});
user2.someSetMethod({name: 'Jenny', gender: 'female'});
Run Code Online (Sandbox Code Playgroud)

期望的结果:

var user1 = {
  name: 'John',
  gender: 'male',
  email: 'john@gmail.com'
}


var user2 = {
  name: 'Jenny',
  gender: 'female',
  email: 'james@gmail.com'
}
Run Code Online (Sandbox Code Playgroud)

我想要一个方法,根据传递给函数的内容设置属性.该属性是否存在我希望它被创建,如果属性,我希望它被覆盖.

Javascript中是否存在这样的方法?

Joh*_*ler 6

这通常称为扩展您的对象.事实上,每个JavaScript库都有自己的方法来执行此操作.或者你可以用几行代码编写自己的代码.

使用jQuery的方法,你会这样做:

var user1 = {
  name: 'John',
  gender: 'male'
};

$.extend(user1, {
  email: 'john@gmail.com'
});

user1.email === 'john@gmail.com'; //true
Run Code Online (Sandbox Code Playgroud)

  • 或者在简单的JS中:`var user1 = {name:'John',gender:'male'}; user1 ["email"] ="john@gmail.com";` (4认同)