jQuery 部分源码解析

简洁的API

$.on
$.css
$.ajax
….

优雅的链式

var  xhr = $.ajax( "./example.php" )
    .done(function() { alert("success"); })
    .fail(function() { alert("error"); })

类CSS的选择器

$("div, span, p.myClass" )
$("div span:first-child")
...

便捷的操作

$("p").removeClass("myClass noClass").addClass("yourClass");
$("ul li:last").addClass(function(index) {
   return "item-" + index;
});
$('.container').append($('h2'));
…

2、立即调用表达式

任何库或者框架设计的第一个需要考虑的点就是解决命名空间和全局变量污染的问题,jQuery利用了JavaScript函数作用域的特性,采用立即执行函数包裹了自身的方法来解决这个问题。

jQuery的立即调用函数表达式的写法吧
one

(function(window, factory) {
    factory(window)
}(this, function() {
    return function() {
       //jQuery的调用
    }
}))

简化它就好了。这里我们可以开始剖解它

//相信这样大家很容易理解,对啊就是一个简单的匿名函数执行函数的两种写法
(function() {
    /*code*/
})()
or
(function() {
    /*code*/
}())

下面我们再看一个传参的立即执行函数

(function(a,b) {
    /*code*/
}(c,d))

我们知道在javascript中函数作为一等公民,我们可以将一个函数作为参数传入另一个函数中

//这里的factory是一个形参函数
(function(window, factory) {
    factory(window)
}(this, function() {    
    return function() {
       //jQuery的调用
    }
}))
//整个这样一段就是给上面的匿名函数传入第一个实参this,第二个实参一个function,并立即执行
(this, function() {    
    return function() {
       //jQuery的调用
    }
})

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 2,896评论 0 2
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 18,758评论 1 40
  • PNG 有PNG8和truecolor PNG PNG8类似GIF颜色上限为256,文件小,支持alpha透明度,...
    hudaren阅读 371评论 0 0
  • 一:什么是闭包?闭包的用处? (1)闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就 是将函数内部和函数外...
    xuguibin阅读 5,228评论 1 51
  • jQuery jQuery是JavaScript世界中使用最广泛的一个库。 jQuery这么流行,肯定是因为它解决...
    星腾_范特西阅读 1,364评论 0 27