簡潔的API
$.on
$.css
$.ajax
….
優(yōu)雅的鏈式
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、立即調(diào)用表達式
任何庫或者框架設計的第一個需要考慮的點就是解決命名空間和全局變量污染的問題扔枫,jQuery利用了JavaScript函數(shù)作用域的特性,采用立即執(zhí)行函數(shù)包裹了自身的方法來解決這個問題韭寸。
jQuery的立即調(diào)用函數(shù)表達式的寫法吧
one
(function(window, factory) {
factory(window)
}(this, function() {
return function() {
//jQuery的調(diào)用
}
}))
簡化它就好了帆阳。這里我們可以開始剖解它
//相信這樣大家很容易理解,對啊就是一個簡單的匿名函數(shù)執(zhí)行函數(shù)的兩種寫法
(function() {
/*code*/
})()
or
(function() {
/*code*/
}())
下面我們再看一個傳參的立即執(zhí)行函數(shù)
(function(a,b) {
/*code*/
}(c,d))
我們知道在javascript中函數(shù)作為一等公民躲撰,我們可以將一個函數(shù)作為參數(shù)傳入另一個函數(shù)中
//這里的factory是一個形參函數(shù)
(function(window, factory) {
factory(window)
}(this, function() {
return function() {
//jQuery的調(diào)用
}
}))
//整個這樣一段就是給上面的匿名函數(shù)傳入第一個實參this,第二個實參一個function击费,并立即執(zhí)行
(this, function() {
return function() {
//jQuery的調(diào)用
}
})