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)
相关文章
相关标签/搜索