浅析call和apply的不同
call, apply都屬于Function.prototype的一個(gè)方法,它是JavaScript引擎內(nèi)在實(shí)現(xiàn)的,因?yàn)閷儆贔unction.prototype,所以每個(gè)Function對(duì)象實(shí)例,也就是每個(gè)方法都有call, apply屬性.既然作為方法的屬性,那它們的使用就當(dāng)然是針對(duì)方法的了.這兩個(gè)方法是容易混淆的,因?yàn)樗鼈兊淖饔靡粯?只是使用方式不同.
?
相同點(diǎn):兩個(gè)方法產(chǎn)生的作用是完全一樣的,第一個(gè)參數(shù)都是對(duì)象;
不同點(diǎn):從第二個(gè)參數(shù)起
call()方法參數(shù)將依次傳遞給借用的方法作參數(shù),即fn.call(thisobj, arg1,arg2,arg3...argn),有n個(gè)參數(shù)
apply()方法第一個(gè)參數(shù)是對(duì)象,第二個(gè)參數(shù)是數(shù)組fn.apply(thisobj,arg),此處的arg是一個(gè)數(shù)組,只有兩個(gè)參數(shù)
call, apply作用就是借用別人的方法來(lái)調(diào)用,就像調(diào)用自己的一樣.(把this給了傳入的對(duì)象)
轉(zhuǎn)載于:https://www.cnblogs.com/lrbee/p/6049683.html
總結(jié)
以上是生活随笔為你收集整理的浅析call和apply的不同的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: lucene索引的删除和更新
- 下一篇: 搭建属于自己的技术博客