Javascript 对象键值赋值的四种方法

1、“点”语法
// ECMAScript 3
// 设置属性
obj.someKey = 'Hello World!';

// 获取属性
var val = obj.someKey;

2、中括号语法
// ECMAScript 3
// 设置属性
obj['someKey'] = 'Hello World';

// 获取属性
var val = obj['someKey'];

3、Object.defineProperty
// ECMAScript 5
// 设置属性
Object.defineProperty(obj, 'someKey', {
  value: 'Hello World!',
  writable: true,
  enumerable: true,
  configurable: true
})

// 当然,我们可以重新封装一个简单的方法来实现
const defineProp = function(obj, key, value) {
  const config = { value }
  Object.defineProperty(obj, key, config)
}

// 使用上述的方法,我们需要先创建一个空的对象
const person = Object.create(null);

// 然后设置对象的各个属性
defineProp(person, 'name', 'Johnny');
defineProp(person, 'age', 18);
defineProp(person, 'rich', true);

// 获取属性:可以用1和2中获取属性的方式来获取属性

这个方法可以用于实现继承

// 1、创建程序员对象programer,同时继承person对象
const programer = Object.create(person);

// 2、为programer对象设置一个属性
defineProp(programer, 'skill', 'javascript')

// 3、获取继承自person的name属性
console.log(programer.name);

// 4、获取programer自身的skill属性
console.log(programer.skill);

4、Object.defineProperties

// ECMAScript 5
// 设置属性
Object.defineProperties(obj, {
  'key1': {
    value: 'Hello World',
    writable: true
  },
  'key2': {
    value: 'Hi, Johnny',
    writable: false
  }
});
// 获取属性:可以用1和2中获取属性的方式来获取属性

你可能感兴趣的:(Javascript 对象键值赋值的四种方法)