LOADING...

加载过慢请开启缓存(浏览器默认开启)

loading

关于object.defineproperty()

2022/5/11

object.defineproperty():给一个对象定义一个新属性或修改一个对象的现有属性,并返回此对象。

object.defineproperty(object,’propName’,descriptor);

object:要定义的对象

propName:要定义/修改的属性名

descriptor:要定义/修改的属性描述

enumerable:控制属性是否可枚举,默认false

writeable:控制属性是否可修改,默认false

configurable:控制属性是否可被删除,默认false

get(){}:当有人读取属性时,get函数(getter)就会被调用,且返回值就是要定义/读取的值

set(value){}:当有人定义/修改属性时,set函数(setter)就会被调用,且会收到修改的具体值

一个简单的数据代理

let obj = { x: 100 }
let obj2 = { y: 200 }


Object.defineProperty(obj2, 'x', {
    get() {
        return obj.x
    },
    set(value) {
        obj.x = value
    }
})

obj2.x = 300
console.log(obj.x, obj2.x)//300 300
img_show