“约见”面试官系列之常见面试题之第六十四篇之call和apply区别(建议收藏)
生活随笔
收集整理的這篇文章主要介紹了
“约见”面试官系列之常见面试题之第六十四篇之call和apply区别(建议收藏)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
call和apply用來調用函數,并用指定對象(第一個參數)替換函數的 this 值,同時用指定數組替換函數的參數。注:也可以不指定參數,此時只是單純的調用函數,如:fun.call()
語法:
fun.call(thisobj,arg1,arg2) ;當后面參數個數確定時用call,參數之間用逗號連接
fun.apply(thisobj,[arg1,arg2]);當后面參數個數不確定時用apply,參數通過數組形式輸入
call和apply的作用:
改變this的指向,第一個參數為你要傳入的對象,傳入后函數的this就指向了這個對象,后面的參數為你為函數傳遞的參數值
簡單案例:
var str='js'; function fo(){var str='jq';console.log(this.str);//此時this指向windowconsole.log(this===window);console.log(this===obj);//輸出js,true,false } fo(); var obj={str:'html' }; fo.call(obj)//輸出html,false,true,這就證明了call將fo的this指向改為了obj; var ob={str:'css', } var get=function(){console.log(str);//js 此時讀取的是全局變量的值console.log(this.str);//css 此時this指向了ob,返回的就是ob.str } get.call(ob)復雜案例:
?
本面試題為前端常考面試題,后續有機會繼續完善。我是歌謠,一個沉迷于故事的講述者。
歡迎一起私信交流。
“睡服“面試官系列之各系列目錄匯總(建議學習收藏)?
總結
以上是生活随笔為你收集整理的“约见”面试官系列之常见面试题之第六十四篇之call和apply区别(建议收藏)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android智能硬件开发】【009】
- 下一篇: iOS上架app store下载步骤