javascript - Object.defineProperty中这段代码如何理解?实际中有用的上的地方吗?在哪使用?
本文介绍了javascript - Object.defineProperty中这段代码如何理解?实际中有用的上的地方吗?在哪使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
// 循环使用同一对象
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"));
解决方案
这段代码的功能就是锁定obj
中的key
属性,给他赋值'static'
后,key
属性就变得不可枚举,不可写。
可能不好理解的地方就是这个函数采用了类似'惰性加载'的性质
当withValue这个函数运行一次之后,withValue.d
会被初始化,下次调用withValue
函数的时候,可以直接从withValue.d
取值
实际上用的时候就是冻住了这个对象的属性值,起到了保护该属性值的作用,具体应用,那就得看场景需求了。
这篇关于javascript - Object.defineProperty中这段代码如何理解?实际中有用的上的地方吗?在哪使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文