gpt4 book ai didi

javascript - js 内存组织 - 闭包与对象?

转载 作者:行者123 更新时间:2023-11-28 20:26:19 25 4
gpt4 key购买 nike

当我使用 JS 进行开发时,我经常面临使用内部函数(闭包)捕获变量和使用对象之间的选择。

内部函数:

var x = ...;
var f = function() {
// use x here
}

对象:

obj.x = ...;
obj.f = function() {
// use x here
}

内部函数方法“感觉”更自然,但我想知道 - 是否需要担心以某种方式执行此操作会对性能产生影响,以及执行此类操作最惯用的方法是什么?

最佳答案

在 PC 平均拥有 8GB RAM 的时代,闭包与对象属性的内存使用似乎无关紧要。无论如何,在一个不平凡的应用程序中,仅使用闭包或仅使用属性值是极不可能有意义的。

如果您有一个代码模块,则对仅由该模块的方法内部使用的变量使用闭包是有意义的。使用需要在模块之间共享的值的属性而不需要使用 getter 和 setter 也是有意义的(例如,您想要使用 obj.property 而不是 obj.getProperty() )。

此外,属性访问比使用函数检索值要高效得多,但 getter 和 setter 可以提供比简单读取或分配值更重要的功能(例如值验证和完整性检查)。

一如既往,根据任何合适的标准(速度、代码可维护性、稳健性、跨浏览器支持等)使用适合您的应用程序的内容。

关于javascript - js 内存组织 - 闭包与对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17331828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com