underscore.js 分析 第一天

Underscore 是一個很是實用的Javascript類庫。html

經過研究他能提升自身的JS水平。瀏覽器

咱們看到整個代碼被 (function() { /*  代碼 */ }.call(this)); 包裹了起來。函數

(function() {
// 代碼
}.call(this));

這是什麼意思?做用是什麼?先不着急,咱們經過一個個例子來學習。學習

這個其實很好理解this

// 這是一個普通函數
var a = function(){
   alert("11")
}

若是運行這段JS腳本,不會彈出11。由於沒有調用a函數。spa

可是注意若是函數名後面添個(),就會當即運行這個函數code

var a = function(){
  alert("11")
}

a()

函數通常是有名字的,好比上面的函數就叫a,沒有名字的函數叫匿名函數。咱們知道JS支持匿名函數。htm

JS中當一個匿名函數被括起來,而後再在後面加一個括號,這個匿名函數就能當即運行起來!對象

//當即彈出11
(function (){
   alert("11")
})()

underscore的代碼包裹在一個匿名自執行函數中。不少類庫jQuery都是這麼作。blog

好處:

1. 由於會當即執行,避免變量污染

(function() {
    var jQuery = { 
    
      VERSION : '1.0',
      a: function(){
        alert("11");
      }
    
    };
    window.jQuery = jQuery;
    $ = jQuery;
})();

//$.a()

$.VERSION;

  call的用法

//而call(this)方法,是指當定義完後將this自己經過call()調用自己來實現當即執行。

//在瀏覽器環境 全局this 就是window對象

(function(){

//執行語句

}).call(this)
相關文章
相關標籤/搜索