簡潔的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的調用
}
})