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