Function.prototype.call.apply結(jié)合用法分析示例
更新時(shí)間:2013年07月03日 15:12:53 作者:
昨天在網(wǎng)上看到一個(gè)很有意思的js面試題:var a = Function.prototype.call.apply(function(a){return a;}, [0,4,3]);alert(a); 分析步驟如下,感興趣的朋友可以參考下哈
昨天在網(wǎng)上看到一個(gè)很有意思的js面試題,就跟同事討論了下,發(fā)現(xiàn)剛開始很繞最后豁然開朗,明白過來之后發(fā)現(xiàn)還是挺簡(jiǎn)單的,跟大家分享下!
題目如下:var a = Function.prototype.call.apply(function(a){return a;}, [0,4,3]);alert(a);
分析步驟如下:
1、將Function.prototype.call當(dāng)成整體,call方法是由瀏覽器實(shí)現(xiàn)的本地方法,是函數(shù)類型的內(nèi)部方法
var a = (Function.prototype.call).apply(function(a){return a;}, [0,4,3]);
2、fun.apply(obj,args)等價(jià)于obj.fun(args),這一步是重點(diǎn),必須理解!
(function(a){return a;}).apply(0,[4,3])
(function(a){return a;}).call(0,4,3)
3、 到這步結(jié)果就很明顯了,a就是4,alert的結(jié)果就是4
這個(gè)題目迷惑的點(diǎn)就在于Function.prototype.call,理解好了,就清晰明了了!
題目如下:var a = Function.prototype.call.apply(function(a){return a;}, [0,4,3]);alert(a);
分析步驟如下:
1、將Function.prototype.call當(dāng)成整體,call方法是由瀏覽器實(shí)現(xiàn)的本地方法,是函數(shù)類型的內(nèi)部方法
var a = (Function.prototype.call).apply(function(a){return a;}, [0,4,3]);
2、fun.apply(obj,args)等價(jià)于obj.fun(args),這一步是重點(diǎn),必須理解!
(function(a){return a;}).apply(0,[4,3])
(function(a){return a;}).call(0,4,3)
3、 到這步結(jié)果就很明顯了,a就是4,alert的結(jié)果就是4
這個(gè)題目迷惑的點(diǎn)就在于Function.prototype.call,理解好了,就清晰明了了!
相關(guān)文章
laydate只顯示時(shí)分 不顯示秒的功能實(shí)現(xiàn)方法
今天小編就為大家分享一篇laydate只顯示時(shí)分 不顯示秒的功能實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09JavaScript面向?qū)ο蟪绦蛟O(shè)計(jì)教程
這篇文章主要介紹了JavaScript面向?qū)ο蟪绦蛟O(shè)計(jì)教程的相關(guān)資料,需要的朋友可以參考下2016-03-03調(diào)用js時(shí)ie6和ie7,ff的區(qū)別
主要考慮到一些瀏覽器的兼容性問題,這個(gè)是經(jīng)常遇到的,大家可以參考下。2009-08-08JS實(shí)現(xiàn)數(shù)組去重,顯示重復(fù)元素及個(gè)數(shù)的方法示例
這篇文章主要介紹了JS實(shí)現(xiàn)數(shù)組去重,顯示重復(fù)元素及個(gè)數(shù)的方法,涉及javascript數(shù)組遍歷、統(tǒng)計(jì)、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下2019-01-01javascript制作坦克大戰(zhàn)全紀(jì)錄(1)
本文寫作的目的是鞏固一下自己最近學(xué)習(xí)的js知識(shí), 這個(gè)教程適合熟悉js基本語法和面向?qū)ο笳Z法的小伙伴學(xué)習(xí)。由于自己也是剛學(xué)js不久,所以難免出現(xiàn)錯(cuò)誤。如果發(fā)現(xiàn)希望給予指正。2014-11-11js中arguments,caller,callee,apply的用法小結(jié)
本篇文章只要是對(duì)js中arguments,caller,callee,apply的用法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01js客戶端快捷鍵管理類的較完整實(shí)現(xiàn)和應(yīng)用
js客戶端快捷鍵管理類的較完整實(shí)現(xiàn)和應(yīng)用,需要的朋友可以參考下。2010-06-06