函数表达式与直接调用

时间:2016-01-04 21:58:32

标签: javascript function closures

为什么直接调用函数时的不同结果与使其成为函数表达式然后调用变量?

function makeFunc() {
  var name = "Mozilla";
  function displayName() {
    alert(name);
  }
  return displayName;
}

console.log(makeFunc());
makeFunc(); //no alert

var myFunc = makeFunc();
console.log(myFunc);
myFunc(); //Yes alert

1 个答案:

答案 0 :(得分:2)

您必须调用该函数的返回



function makeFunc() {
    var name = "Mozilla";
    function displayName() {
        alert(name);
    }
    return displayName;
}
makeFunc()(); // alert!




相关问题