Function.prototype.apply()與Function.prototype.call()小結(jié)
老是忘掉這兩個(gè)東東的用下,寫下來(lái)做個(gè)記錄吧。
他們作用是一模一樣的,只是傳入的參數(shù)不一樣
apply
apply接受兩個(gè)參數(shù),第一個(gè)制定了函數(shù)體內(nèi)this對(duì)象的指向,第二個(gè)參數(shù)為一個(gè)帶下標(biāo)的集合(可遍歷對(duì)象),apply方法把這個(gè)集合中的元素作為參數(shù)傳遞給被調(diào)用的函數(shù):
var func = function(a, c, c){
alert([a,b,c]); //[1,2,3]
}
func.apply(null, [1,2,3]);
call
call傳入的參數(shù)不固定,和apply相同的是,第一個(gè)參數(shù)也是代表函數(shù)體內(nèi)的this指向,第二個(gè)參數(shù)開始往后,每個(gè)參數(shù)被依次傳入函數(shù):
var func = function(a, b, c){
alert([a,b,c]); //[1,2,3]
}
func.call(null, 1,2,3);
call是aplly的一顆語(yǔ)法糖。如果第一個(gè)參數(shù)為null,函數(shù)體內(nèi)的this指向宿主對(duì)象,在瀏覽器中是window。
call和apply的用途
1.改變this指向
上面的例子就是啦
2.Function.prototype.bind
模擬Function.prototype.bind
Function.prototype.bind = function(context){
var self = this;
return function(){
return self.apply(context, arguments);
}
};
var obj = {
name: 'cxs'
};
var func = function(){
alert(this.name); //cxs
}.bind(obj);
fun();
- js中apply()和call()的區(qū)別與用法實(shí)例分析
- 有關(guān)JavaScript中call()和apply() 的一些理解
- 深入理解關(guān)于javascript中apply()和call()方法的區(qū)別
- 淺談javascript的call()、apply()、bind()的用法
- 在JavaScript中call()與apply()區(qū)別
- 跟我學(xué)習(xí)javascript的call(),apply(),bind()與回調(diào)
- 淺談javascript中call()、apply()、bind()的用法
- JavaScript中的apply()方法和call()方法使用介紹
- JS面向?qū)ο?、prototype、call()、apply()
- js中call()和apply()改變指針問(wèn)題的講解
相關(guān)文章
深入理解JavaScript系列(21):S.O.L.I.D五大原則之接口隔離原則ISP詳解
這篇文章主要介紹了深入理解JavaScript系列(21):S.O.L.I.D五大原則之接口隔離原則ISP詳解,本文講解了JavaScript接口、ISP與JavaScript、墮落的實(shí)現(xiàn)、靜態(tài)耦合、語(yǔ)義耦合、可擴(kuò)展性等內(nèi)容,需要的朋友可以參考下2015-03-03
js中一維數(shù)組和二位數(shù)組中的幾個(gè)問(wèn)題示例說(shuō)明
這篇文章主要介紹了js中一維數(shù)組和二位數(shù)組中的幾個(gè)問(wèn)題,并給出對(duì)應(yīng)的解決方法,需要的朋友可以參考下2014-07-07
BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--JavaScript篇
很多面試題是我自己面試BAT親身經(jīng)歷碰到的。整理分享出來(lái)希望更多的前端er共同進(jìn)步吧,不僅適用于求職者,對(duì)于鞏固復(fù)習(xí)js更是大有裨益2014-10-10
JavaScript 詳解緩動(dòng)動(dòng)畫的封裝與使用
緩動(dòng)動(dòng)畫原理:移動(dòng)的像素慢慢減少,讓效果看起來(lái)更柔和更美觀,通過(guò)定時(shí)器加回調(diào)函數(shù),實(shí)現(xiàn)動(dòng)畫效果以及更多具體功能,非常好用2021-11-11
JavaScript中的typeof操作符用法實(shí)例
在Web前端開發(fā)中,我們經(jīng)常需要判斷變量的數(shù)據(jù)類型。鑒于ECMAScript是松散類型的,因此需要有一種手段來(lái)檢測(cè)給定變量的數(shù)據(jù)類型——typeof就是負(fù)責(zé)提供這方便信息的操作符。2014-04-04

