首页 > 编程知识 正文

defineproperty 对象的属性,defineProperty

时间:2023-05-05 11:45:36 阅读:226344 作者:2806

作用

Object.defineProperty用于定义设置对象的属性的一种方法。

var obj {a : 1}Object.defineProperty(obj, name, {value: 新范式})console.log(obj)

函数参数 Object 第一个参数是操作的对象必须propertyName 属性名要设置的属性descripor 描述符 描述符参数 value设置值默认是underfinedwritable是否可修改enumerable是否可枚举configurable这个参数我也不是很懂 属性设置

除了对属性的对象进行描述还有一种set/get设置。可以捕捉属性改变或者读取的事件做一定的操作。

例子

如下所示通过Object.defineProperty实现了双向绑定。

<!DOCTYPE html><html><head><meta charsetutf-8><title></title></head><body><div></div><input typetext/><script>let obj {};function watch(obj, name, callback){let value obj.name;Object.defineProperty(obj, name, {set(newValue){value newValue;callback(value);},get(){return value;}})}function doChange(value){document.querySelector(div).innerHTML value;document.querySelector(input).value value;}document.querySelector(input).addEventListener(input, (e) > {obj[val] e.target.value;});watch(obj, val, doChange);</script></body></html>

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。