Function.prototype.apply()與Function.prototype.call()小結(jié)
老是忘掉這兩個(gè)東東的用下,寫(xiě)下來(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ù)開(kāi)始往后,每個(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字符串對(duì)象的常用方法簡(jiǎn)明版
這篇文章主要介紹了Javascript字符串對(duì)象的常用方法簡(jiǎn)明版,本文用一個(gè)代碼例子列表了Javascript字符串對(duì)象的一些常用方法,例如加粗、斜體、刪除線、上標(biāo)、下標(biāo)、大小寫(xiě)、查找字符、替換字符等,需要的朋友可以參考下2014-06-06javascript 進(jìn)階篇1 正則表達(dá)式,cookie管理,userData
接下來(lái)開(kāi)始我們的進(jìn)階之路,更實(shí)用的技巧分享2012-03-03Javascript學(xué)習(xí)筆記之 函數(shù)篇(三) : 閉包和引用
本系列好久沒(méi)更新了,今天重新拿過(guò)來(lái),繼續(xù)前面未完成的事項(xiàng),本文我們就來(lái)談?wù)凧avascript 中一個(gè)最重要的特性--閉包的使用引用。2014-11-11Javascript技術(shù)棧中的四種依賴注入小結(jié)
本文總結(jié)了Javascript中常見(jiàn)的依賴注入方式,并以inversify.js為例,介紹了方言社區(qū)對(duì)于Javascript中DI框架的嘗試和初步成果2016-02-0221個(gè)JavaScript事件(Events)屬性匯總
本文介紹了學(xué)習(xí)JavaScript事件的21個(gè)屬性,算是對(duì)自己近期學(xué)習(xí)javascript的一個(gè)小小的總結(jié),這里推薦給大家。2014-12-12javascript數(shù)組操作方法小結(jié)和3個(gè)屬性詳細(xì)介紹
這篇文章主要介紹了javascript數(shù)組操作方法小結(jié)和3個(gè)屬性詳細(xì)介紹,需要的朋友可以參考下2014-07-07用JavaScript實(shí)現(xiàn)頁(yè)面重定向功能的教程
這篇文章主要介紹了用JavaScript實(shí)現(xiàn)頁(yè)面重定向功能的教程,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06