首页 > 解决方案 > 只为其他一些 IIFES 创建一个 IIFE 返回变量

问题描述

我想知道我们是否可以在一个 IIFE 中声明一个变量并将其返回但使其可用于另一个特定的 IIFE?这是一个例子!

所以我有

const iife1 = (()=>{
const x = 10;
return x
})()

const iife2 = (()=>{/* MAKE X AVAILABLE ONLY IN THIS FUNCTION */})()
const iife3 = (()=>{/* HERE X CANNOT BE CALLED */})()

也许您会说不要将 iif3 中的变量 x 作为参数传递,但我想知道在从 iif1 返回变量时是否有条件方法可以实现它,因此 iif1 将知道它返回的函数之前的属性或方法居然已经返回了!

我的目标是创建一个 IIFE,我将在其中声明我将在项目中使用的所有变量。然后对于每个变量,我希望有一个适当的条件,以便当带有变量的 IIFE 返回时,函数已经决定在哪个范围内发送变量以供使用!我不知道这种方法是否有意义,但正如人们常说的那样,我试图不填充全球范围。

密码笔

标签: javascriptscopeiife

解决方案


IIFE只能使用GlobalPassed或 内部变量。您不能使功能范围内的某些东西对同一范围内的第二个功能不可用。

传递变量是一种方法,但在某些情况下更实用的方法可能是根据需要嵌套您的IIFE

const iife2 = (() => {
  const iife1 = (() => {
    const x = 10;
    return x
  })()

  console.log(iife1);
/*iife2 scope*/
})()

const iife3 = (() => { /* HERE X CANNOT BE CALLED */ })()


推荐阅读