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"));


繁花如伊
浏览 624回答 1
1回答

Cats萌萌

这段代码的功能就是锁定obj中的key属性,给他赋值'static'后,key属性就变得不可枚举,不可写。可能不好理解的地方就是这个函数采用了类似'惰性加载'的性质当withValue这个函数运行一次之后,withValue.d会被初始化,下次调用withValue函数的时候,可以直接从withValue.d取值实际上用的时候就是冻住了这个对象的属性值,起到了保护该属性值的作用,具体应用,那就得看场景需求了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript