加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

改进机能的最好要领:JavaScript耽误执行属性

发布时间:2021-05-17 22:32:20 所属栏目:编程 来源:互联网
导读:按需属性模式 优化执行计较操纵的最简朴要领是比及必要数据后再举办计较。 譬喻,您可以行使带有getter的data属性来按需举办计较,如下所示: classMyClass{ get

然后,getter函数举办计较并再次挪用Object.defineProperty()。对付data来说,将该属性从头界说为具有特定值的数据属性,而且将其变为不行写且不行设置以掩护最终数据。下次data读取该属性时,将从存储的值中读取该属性。该data属性此刻仅作为本身的属性存在,而且在第一次读取之前和之后都具有沟通的浸染:

const object = new MyClass(); 

console.log(object.hasOwnProperty("data"));     // true 

 

const data = object.data; 

console.log(object.hasOwnProperty("data"));     // true 

对付类,这很也许是您要行使的模式。另一方面,工具模式下可以行使更简朴的要领。

工具的耽误加载属性

假如行使的是工具模式而不是类,则进程要简朴得多,由于在工具模式上界说的getter与数据属性一样被界说为可列举的自身属性(而不是原型属性)。这意味着您可觉得类行使耽误加载属性模式,而不会造成紊乱:

const object = { 

    get data() { 

        const actualData = someExpensiveComputation(); 

 

        Object.defineProperty(this, "data", { 

            value: actualData, 

            writable: false, 

            configurable: false, 

            enumerable: false 

        }); 

 

        return actualData; 

    } 

}; 

console.log(object.hasOwnProperty("data"));     // true 

const data = object.data; 

console.log(object.hasOwnProperty("data"));     // true 

总结

通过从从头界说为数据属性的会见器属性开始,您可以将计较推迟到第一次读取该属性时,然后将功效缓存起来以备后用。这种要领合用于类和工具笔墨,而且在工具模式中更简朴一些,由于您不必担忧getter最终会呈此刻原型上。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读