Function.prototype.call.apply結合用法分析示例
更新時間: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當成整體,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、 到這步結果就很明顯了,a就是4,alert的結果就是4
這個題目迷惑的點就在于Function.prototype.call,理解好了,就清晰明了了!
題目如下:var a = Function.prototype.call.apply(function(a){return a;}, [0,4,3]);alert(a);
分析步驟如下:
1、將Function.prototype.call當成整體,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、 到這步結果就很明顯了,a就是4,alert的結果就是4
這個題目迷惑的點就在于Function.prototype.call,理解好了,就清晰明了了!
相關文章
laydate只顯示時分 不顯示秒的功能實現(xiàn)方法
今天小編就為大家分享一篇laydate只顯示時分 不顯示秒的功能實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
JS實現(xiàn)數(shù)組去重,顯示重復元素及個數(shù)的方法示例
這篇文章主要介紹了JS實現(xiàn)數(shù)組去重,顯示重復元素及個數(shù)的方法,涉及javascript數(shù)組遍歷、統(tǒng)計、計算等相關操作技巧,需要的朋友可以參考下2019-01-01
js中arguments,caller,callee,apply的用法小結
本篇文章只要是對js中arguments,caller,callee,apply的用法進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01

