面向对象的编程语言允许使用私有字段隐藏数据。他们使用这些来隐藏类的内部。在JS中,没有这样的构建支持来隐藏/封装内部工作。
我们有Anonymous函数,可以为您封装JS。让我们看一个例子-
const HIDDEN_CONST = 100; function fnWeWantToHide(x, y) { return (x + y) * HIDDEN_CONST } console.log(fnWeWantToHide(1, 2))
如果我们将上面的代码公开地写出来,则此代码将使用这些名称污染全局命名空间。相反,我们可以做的是将其包装在IIFE(立即调用的函数表达式)中。例如,
(() => { const HIDDEN_CONST = 100; function fnWeWantToHide(x, y) { return (x + y) * HIDDEN_CONST } console.log(fnWeWantToHide(1, 2)) })()
现在,这些变量隐藏在函数表达式中。但是函数和const不再污染全局命名空间。