1、给对象增加属性。
当我们有一个对象,想给这个对象增加一个属性。可以用如下方法实现:
直接给obj对象增加sex属性。
2、使用Object.defineProperties为对象增加属性。
Object.defineProperties(object,propertyDescriptors)的定义
- object给哪个对象增加属性。
- propertyDescriptors 对增加的属性进行描述。
propertyDescriptors 用来描述属性的。可以有下面几个参数。
- value 属性的值。
- configurable 属性是否能被删除。默认false。
- writable 属性是否能修改。默认false。
- enumerable 属性是否能用 fro in枚举,默认false。
- get 属性的get方法。
- set 属性的set方法。
例子如下:
3、创建对象的时候。直接定义get、set
下面的代码在创建对象的时候,定义了fullName属性的get、set方法。效果和上面一样。
4、使用Object.create创建对象。
Object.(object,propertyDescriptors)方法,用给定的对象object做模板创建一个新的对象。也就说创建的新对象继承了object的所有属性。
例子如下:
这里需要注意:
-- 改变了原始对象的age属性,扩展对象的age属性也被改变
obj.age = 2018; console.log(objExt.age);//输出2018 , 改变原始的age属性,继承的属性会被改变。 --如果扩展对象重新增加了一个属性,覆盖了原始对象的属性,那这时候改变原始对象的username属性,不会改变扩展对象的username属性。 objExt.username="李四"; obj.username = "王5";//改变了原始对象的username属性,不会改变扩展对象的username属性。 console.log(objExt.username);