jQuery工具方法不僅可以給jQuery用也可以給原生用
1锣险、$.type()
<script>
var a = []
console.log($.type(a))
</script>
type就是判斷類型的一種方法牡肉,可以給原生JS用赋秀,它的好處在于它可以精確判斷各種類型,比如上面的例子打出來的就是array篮撑。而typeof方法只能判斷基本類型。
2匆瓜、$.trim()
<script>
var a = ' string '
console.log('('+$.trim(a)+')')
</script>
$.trim()方法是去掉空格赢笨,如果不用這種方法會連空格都打出來。結(jié)果是(string)而不是( string )
3驮吱、$.inArray()
類似于原生數(shù)組中的indexOf()方法
<script>
var array = ['a','b','c']
console.log( array.indexOf('b') )
</script>
打出1茧妒,用jQuery的$.inArray()工具方法如下表示:
<script>
var array = ['a','b','c']
console.log( $.inArray('b',array) )
</script>
4、$.proxy()這個指定this的方法
<script>
function show(a,b){
console.log(a,b)
console.log(this)
}
$.proxy(show,document)(1,2)
</script>
$.proxy()這個方法接收的兩個參數(shù)第一個是函數(shù)左冬,另一個是this的指向桐筏。這段代碼里$.proxy(show,document)已經(jīng)是讓show里的this指向了document了,但是它沒有執(zhí)行拇砰,所以要寫成$.proxy(show,document)()這種形式才能調(diào)用和修改this梅忌。
$.proxy(show,document,1,2)
$.proxy(show,document,1,2)()
$.proxy(show,document)(1,2)
第一種是只修改this未調(diào)用函數(shù),而后兩種寫法是等價的除破,都調(diào)用了函數(shù)牧氮,傳參的方式也都對。而且瑰枫,在里面進行傳參就可以作為事件委托的執(zhí)行函數(shù)存在蹋笼。
示例如下:
<script>
function show(a,b){
console.log(a,b)
console.log(this)
}
$(button).click($.proxy(show,document,1,2))
</script>
打出來的結(jié)果是1,2,document
再看一個例子:
<script>
var a = {
content: '111',
test : function(){
$('div').text(this.content)
}
}
var b = {
content: '222',
test :function(){
$('div').text(this.content)
}
}
$('button').click($.proxy(a.test,b))
</script>
這個例子的意思就是說,當(dāng)你點擊了button剖毯,就會執(zhí)行函數(shù)a.test圾笨,但是在a.test內(nèi)的this已經(jīng)被修改成了b這個對象,所以最后的結(jié)果就變成了<div>222</div>