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>
使用$.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>
if(!this.$el.is(':animated'))
**描述: ** 判断元素是否在执行中
如果正在运动,返回true
,只有不在运动的时候返回false