jQuery.extend()
**描述: **將兩個或更多對象的內容合并到第一個對象。
方法 | 描述 |
---|---|
$.extend({}, {a:1,b:2}, {a:10,b:20}) | 1.{} 傳遞空的對象 |
2. {a:1,b:2}傳遞對象默認值 | |
3.{a:10,b:20}能替換第二個默認值參數 |
$.extend(1,2,3)方法,在沒有傳遞第三個參數的情況下會返回第二個默認對象,傳遞了第三個值會替換第二個對象。這樣能解決默認參數的問題。
傳遞默認值
var object = $.extend({}, {a:1,b:2});
//Object {a: 1, b: 2}
傳遞替換默認值
var object = $.extend({}, {a:1,b:2}, {a:10,b:20});
//Object {a: 10, b: 20}
jQuery.proxy() 實用工具
**描述: ** 通過jQuery.proxy() 實用工具改變this指向
方法 | 描述 |
---|---|
$.proxy(opi.c,opi) | 1.調用方法 |
2.this指向 |
在沒使用前如果調用方法是事件對象,那么函數原型鏈上的this是無法指向這個構造函數本身的,this會指向事件按鈕本身
<button id="bnt">按鈕</button>
<script type="text/javascript">
function oppo(){
this.x=1
}
oppo.prototype.c=function(){
console.log(this)
return this.x*10
}
var opi=new oppo()
$(function(){
$("#bnt").on('click',opi.c)
})
</script>
Paste_Image.png
使用$.proxy(opi.c,opi)方法第一個參數傳入方法第二個傳入構造器本身也就是將this指向了構造器。
<button id="bnt">按鈕</button>
<script type="text/javascript">
function oppo(){
this.x=1
}
oppo.prototype.c=function(){
console.log(this)
return this.x*10
}
var opi=new oppo()
$(function(){
$("#bnt").on('click',$.proxy(opi.c,opi))
})
</script>
Paste_Image.png
if(!this.$el.is(':animated'))
**描述: ** 判斷元素是否在執行中
如果正在運動,返回true
,只有不在運動的時候返回false