我如何参考未声明的变量

这个问题在这里已经有了答案:

  • JavaScript闭包与匿名函数12个答案

  • 你得到的例子是缺少一些行,或者它不是关闭的适当例子。 一个更好的例子(使用简化代码)将会是

    function warningMaker(obstacle){
       return function() {
          alert("Look!" + obstacle);
       }
    }
    

    上面所做的是,当函数返回时,函数体中对obstacle的引用会创建一个闭包,所以它将在内存中,并在每次调用时使用它,它将会

    warningMaker("Messi")(); // "Look! Messi"
    warningMaker("CR7")(); // "Look! CR7"
    

    请注意,在上面,正在调用返回的函数。 (我的意思是,空的括号)


    我认为你的意思是:

    function warningMaker( obstacle ){
      var obs = obstacle; // otherwise it would never be able to associate this two variables automatically
      function doAlert () {
        alert("Beware! There have been "+obs+" sightings in the Cove today!");
      };
      return doAlert;
    }
    
    链接地址: http://www.djcxy.com/p/52023.html

    上一篇: how come I refer to an undeclared variable

    下一篇: What does a closure REALLY refer to?