为了账号安全,请及时绑定邮箱和手机立即绑定

Object.defineProperty中这段代码如何理解?实际中有用的上的地方吗?在哪使用?

Object.defineProperty中这段代码如何理解?实际中有用的上的地方吗?在哪使用?

繁花如伊 2018-09-07 14:16:16
  // 循环使用同一对象    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取值

实际上用的时候就是冻住了这个对象的属性值,起到了保护该属性值的作用,具体应用,那就得看场景需求了。


查看完整回答
反对 回复 2018-10-17
  • 1 回答
  • 0 关注
  • 623 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信