- 相關(guān)推薦
關(guān)于JavaScript中call()和apply() 的一些理解
關(guān)于JavaScript中call()和apply() 的一些理解
call()方法和apply()方法,在上層應(yīng)用中用的不是很多,但在底層寫(xiě)JS框架的時(shí)候卻常?吹。然后度娘谷哥一番,也發(fā)現(xiàn)好多達(dá)人寫(xiě)出了自己的理解和筆記,但始終還是云里霧里,于是去W3C學(xué)習(xí)了下
在W3C網(wǎng)上研究這兩個(gè)方法的時(shí)候,看到一個(gè)詞語(yǔ),叫“對(duì)象冒充”,這個(gè)概念本人覺(jué)得還是挺重要的,讓我對(duì)這兩個(gè)方法理解起來(lái)更加直觀。
call()方法,看下官方給出的例子
function sayColor(sPrefix,sSuffix) { alert(sPrefix + this.color + sSuffix);};var obj = new Object();obj.color = "blue";sayColor.call(obj, "The color is ", "a very nice color indeed.");
最后輸出的結(jié)果是“The color is blue, a very nice color indeed.”
call()方法就是將第一個(gè)參數(shù)替換方法中的this,然后后面的參數(shù)傳入該方法使用
apply()方法,同樣先看個(gè)官方給出的例子
function sayColor(sPrefix,sSuffix) { alert(sPrefix + this.color + sSuffix);};var obj = new Object();obj.color = "blue";sayColor.apply(obj, new Array("The color is ", "a very nice color indeed."));
最后輸出的結(jié)果仍然是“The color is blue, a very nice color indeed.”
其實(shí)call()方法和apply()方法可以粗略的認(rèn)為是差不多的,第一個(gè)參數(shù)都是替換方法中this關(guān)鍵字,只是后面?zhèn)鹘o方法的傳參方式不同,call是直接對(duì)應(yīng),apply是利用數(shù)組,在數(shù)組中一一對(duì)應(yīng)
【JavaScript中call()和apply() 的一些理解】相關(guān)文章:
對(duì)項(xiàng)目管理的理解和認(rèn)識(shí)04-10
javascript跨域訪(fǎng)問(wèn)的方法07-19
英語(yǔ)閱讀理解和完形填空答題的技巧07-10
溝通技巧:與人溝通的一些技巧和方法03-12
盤(pán)點(diǎn)嵌入式名詞簡(jiǎn)單的理解和定義01-30
電子電路設(shè)計(jì)的一些技巧和注意事項(xiàng)08-11
2022中考英語(yǔ)閱讀理解誒考前練習(xí)題11-18
健身的一些誤區(qū)09-04