javascript - Object.defineProperty中这段代码如何理解?实际中有用的上的地方吗?在哪使用?
PHP中文网
PHP中文网 2017-04-11 13:08:35
[JavaScript讨论组]
  // 循环使用同一对象
    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"));
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(1)
伊谢尔伦

这段代码的功能就是锁定obj中的key属性,给他赋值'static'后,key属性就变得不可枚举,不可写。

可能不好理解的地方就是这个函数采用了类似'惰性加载'的性质

当withValue这个函数运行一次之后,withValue.d会被初始化,下次调用withValue函数的时候,可以直接从withValue.d取值

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号