从嵌套函数内部访问IIFE变量

时间:2018-05-13 05:39:42

标签: javascript scope iife

我有一个内置嵌套函数的IIFE。嵌套函数内部和外部都有一个word变量。如何在嵌套函数外部而不是内部函数中访问word变量?

代码:



(function (){

    let word = "Hello";

    function sayHello(){
        let word = "Greetings";
        console.log(word + " Everyone!"); // This is using the inside word variable instead of the outside one. How can I specify JS to use the outside one instead?
    }

    sayHello();

})();




1 个答案:

答案 0 :(得分:2)

将外部变量作为参数传递,以便您可以从内部变量中单独引用它:

(function() {
  let word = "Hello";
  function sayHello(outerWord) {
    let word = "Greetings";
    console.log(outerWord + " Everyone!");
  }
  sayHello(word);
})();

或者,如果允许,只需给变量指定不同的名称 - 出于这个原因,阴影通常是一个坏主意。