认识Object.defineProperty以及Object.defineProperties
Object.defineProperty会直接在对象上定义新的属性和方法,或者修改存在的属性和方法,并返回这个对象。
语法:
Object.defineProperty(object, propertyname, descriptor)
参数:
- object 必需。添加需要修改属性或者添加属性的对象。
- propertyname 必需。需要定义或者修改属性的名称(字符串)。
- descriptor 必需。属性描述符。通俗说,属性的描述。可以添加数据(数据描述符)属性,或者访问器(存取描述符)属性。数据描述符与存取描述符不可混用,否则报错。后续详解。
descriptor的参数
数据描述符
- value-----属性的值,默认为 undefined。
- writable-----属性是否可写,当属性的值可以被赋值操作修改时设置为true。默认为false。
访问器描述符
- get-----属性的getter方法,属性如果有getter方法,则返回属性值,否则返回undefined。默认为 undefined。
- set-----属性的setter方法,属性如果没有setter方法,返回undefined。该方法接收唯一的参数,作为属性的新值。默认为 undefined。
实例
实现input输入,span同时输出功能
运行结果
注意
- 当使用了getter或setter方法,不允许使用writable和value这两个属性。
- get或set不是必须成对出现,任写其一就可以。如果不设置方法,则get和set的默认值为undefined
Object.defineProperties使用
语法
Object.defineProperties(obj, props)
使用实例
两个input标签之间数据互传
输入数据显示数据
运行结果