javaScript學習筆記之-------閉包

提到閉包,就不能不提的---變量做用域

變量做用域:全局變量和局部變量閉包

js語言自己的獨特之處:就是能夠在函數內部讀取使用全局變量

那麼問題來了,,如何在函數外部使用函數內部命名的變量   函數

殺手鐗----閉包this

舉例說明:

知識點:this指的是全局 spa

 
 var age= "19";
   var object = {     age: "9",     getAgeFunc : function(){       return function(){         return this.age;       };     }   };   alert(object.getAgeFunc ()());//19
 

附上差別點:code

 

其實二者的主要區別就是區別就是第一個程序在執行完第一段()的時候把裏面的做用域scope拋棄了,而第二個程序在執行完第一段()的時候把裏面的做用域scope賦給一個變量一併返回獲得了暫存狀態,因此執行二段()的時候,

第一個程序因爲拋棄了因此this直接指向window,第二個程序的this.指的天然是那個變量

 

知識點:  this  指的是object對象對象

    var age = "19";
    var object = { age : "9", getAgeFunc : function(){ var that = this; return function(){ return that.age ; }; } }; alert(object.getAgeFunc()());//9

 

之前以爲尤爲困難的閉包,,理解後是這麼可愛

blog

相關文章
相關標籤/搜索