gpt4 book ai didi

javascript - 应该使用 IIFE 或对象属性来创建静态变量吗?

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

有时,当我需要静态变量时,我会使用并立即调用函数表达式 (IIFE) - 示例 1。

(function(){
var private_statik = 'hi',
publik = {};
return publik;
}())

其他时候,我只是将它们作为属性附加到需要它们的函数 - example2。

function foo () {
}
foo.statik = 'hello';

示例 1 很好。我得到了封装(隐私)的好处。示例 2 很好。它很简单,并且自执行没有任何开销。

还有其他需要考虑的事情吗?

我的具体情况是一个页面更改器 - sFlipPage()。我想将所有 DOM 元素缓存在静态位置,以便每次调用时都可以使用它们,并且不必每次调用函数时都从 DOM 中提取它们。

谢谢!

最佳答案

主要区别在于隐私和执行顺序。使用 IIFE,您可以将静态变量设为私有(private)。使用简单的函数则不能。为了鼓励良好的 OO 设计(封装),我建议默认使用 IIFE。

权衡是立即调用 IIFE,而不仅仅是在您需要该特定对象时。

关于javascript - 应该使用 IIFE 或对象属性来创建静态变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14470831/

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