// 循环使用同一对象 function withValue(value) { var d = withValue.d || ( withValue.d = { enumerable: false, writable: false, configurable: false, value: null } ); d.value = value; return d; } // ... 并且 ... Object.defineProperty(obj, "key", withValue("static"));
1 回答
Cats萌萌
TA贡献1805条经验 获得超9个赞
这段代码的功能就是锁定obj
中的key
属性,给他赋值'static'
后,key
属性就变得不可枚举,不可写。
可能不好理解的地方就是这个函数采用了类似'惰性加载'的性质
当withValue这个函数运行一次之后,withValue.d
会被初始化,下次调用withValue
函数的时候,可以直接从withValue.d
取值
实际上用的时候就是冻住了这个对象的属性值,起到了保护该属性值的作用,具体应用,那就得看场景需求了。
添加回答
举报
0/150
提交
取消