閉包

閉包

https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Closures

function makeAdder(x) {
  return function(y) {
    return x + y;
  };
}

var add5 = makeAdder(5);

console.log(add5(2));  // 7

console.log( add5 ),會發現 add5 是一個 function

function(y) {
  return x + y;
};

x 在 var add5 = makeAdder(5) 時被帶入 5 add5 要看成:

{
  var x = 5
  function(y) {
    return x + y;
  };
}
// 閉包

another

function makeFunc() {
  var name = "Mozilla";
  function displayName() {
    console.log('displayName: '+name)
  }
  return displayName;
}

var myFunc = makeFunc(); 
myFunc();

myFunc() 可看做:

{
  var name = "Mozilla";  
  function displayName() {
    console.log('displayName: '+name)
  }
}

閉包實用之處,在於能讓你把一些資料,透過 "作用域環境" ({ }), 與操控這些資料的 "函式" (displayName()) 相關聯。

results for ""

    No results matching ""