通过定义一个新的属性来扩展对象
2017-08-18 20:23
405 查看
问题:想要容易的给一个对象添加一个新的属性,但是又想要以能够更多地控制此过程的方式来完成。
解决方案:使用 defineProperty()方法来添加该属性
+ configurable:默认为false,控制属性描述符是否可以修改
+ writable:默认是false,控制属性的值是否可以通过赋值来修改
+ value:该属性的初始值
+ get:默认为undefined,属性的getter
+ set:默认是undefined,属性的setter
解决方案:使用 defineProperty()方法来添加该属性
var data={}; Object.defineProperty(data,'type',{ value:'primary', enumerable:true }); console.log(data.type);//"primary" data.type = 'seconddary'; console.log(data.type);//"primary" Object.defineProperty(data,'id',{ value:1, writable:true }); console.log(data.id);//1 data.id = 300; console.log(data.id);//300 for(prop in data){ console.log(prop);//type }
+ configurable:默认为false,控制属性描述符是否可以修改
+ writable:默认是false,控制属性的值是否可以通过赋值来修改
+ value:该属性的初始值
+ get:默认为undefined,属性的getter
+ set:默认是undefined,属性的setter
相关文章推荐
- 处理模型——通过定义一个自定义的TypeWriter和TypeReader将多个对象存储在Tag属性中
- 将一个对象相同的属性(不区分大小写)赋值给一个新对象 DataTable的一个简单的扩展
- 【OC复合题】之定义一个学生类,需要有姓名,年龄,考试成绩三个成员属性,创建5个对象,属性可以任意值。(Objective-C)
- 10_9_1编写代码,定义一个基类MyClass,其中包括虚礼方法GetString(),这个方法返回存储在受保护字段myString中的字符串,该字段可以通过只写公共属性ContainedStrin
- 如何为workflow单据类型定义一个form属性,在notify中通过这个属性打开表单
- JavaScript中通过数组索引方式访问和属性名方式访问对象属性的一个小小误区
- 定义员工类employee ,员工有姓名,年龄,工号属性, 员工有工作的方法, 键盘录入三组数据, 数据格式(姓名,年龄,工号) 例如:张三,23,9527; 通过数据,创建员工对象, 然后通过对
- 定义一个交通工具(Vehicle)的类,在测试类Vehicle中的main()中实例化一个交通工具对象,通过方法给它初始化speed,size的值,并打印出来。另外,调用加速,减速的方法对速度进行改变
- 思考一个问题:如何将map里面的值,映射到一个对象里的属性,不通过手动方式设置!!!
- 定义一个交通工具(Vehicle)的类,在测试类Vehicle中的main()中实例化一个交通工具对象,通过方法给它初始化speed,size的值,并打印出来。另外,调用加速,减速的方法对速度进行改变
- 使用jQuery匹配文档中所有的li元素,返回一个jQuery对象,然后通过数组下标的方式读取jQuery集合中第1个DOM元素,此时返回的是DOM对象,然后调用DOM属性innerHTML,读取该元素 包含的文本信息
- 如何为workflow单据类型定义一个form属性,在notify中通过这个属性打开表单
- 反射(通过反射写一个通用的设置某个对象的某个属性为指定的值)
- 定义一个交通工具(Vehicle)的类,在测试类Vehicle中的main()中实例化一个交通工具对象,通过方法给它初始化speed,size的值,并打印出来。另外,调用加速,减速的方法对速度进行改变
- struts2通过表单提交POJO对象出错,生成的POJO类只有一个属性
- .使用面向对象思想,输出员工信息并计算员工的工资。实现过程为:定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性; 再定义一个员工(Employee)类,该类的属
- 定义一个交通工具(Vehicle)的类,在测试类Vehicle中的main()中实例化一个交通工具对象,通过方法给它初始化speed,size的值,并打印出来。另外,调用加速,减速的方法对速度进行改变
- 定义一个圆类——Circle,在类的内部提供一个属性:半径(r),同时 提供 两个 方 法 : 计算 面积 ( getArea() ) 和 计算 周长(getPerimeter()) 。 通过两个方法
- 定义一个交通工具(Vehicle)的类,在测试类Vehicle中的main()中实例化一个交通工具对象,通过方法给它初始化speed,size的值,并打印出来。另外,调用加速,减速的方法对速度进行改变
- 终于学会了自己定义一个文件扩展名,可以通过iis识别执行的