JavaScript進階面試——ES6中函數的調用,call,apply和bind

接著上一次我們這次來主要介紹ES6中函數的調用,call,apply和bind,在面試中可能會遇到的問題。

3.ES6中函數的調用

箭頭函數不可以當作構造函數使用,也就是不能用new命令實例化一個對象,否則會拋出一個錯誤

箭頭函數的this是和定義時有關和調用無關

調用就是函數調用模式

JavaScript進階面試——ES6中函數的調用,call,apply和bind


4.call,apply和bind

1.IE5之前不支持call和apply,bind是ES5出來的;

2.call和apply可以調用函數,改變this,實現繼承和借用別的對象的方法;

4.1 call和apply定義

調用方法,用一個對象替換掉另一個對象(this)

對象.call(新this對象,實參1,實參2,實參3.....)

對象.apply(新this對象,[實參1,實參2,實參3.....])

4.2 call和apply用法

1.間接調用函數,改變作用域的this值

2.劫持其他對象的方法

JavaScript進階面試——ES6中函數的調用,call,apply和bind

3.兩個函數實現繼承

JavaScript進階面試——ES6中函數的調用,call,apply和bind

4.為類數組(arguments和nodeList)添加數組方法push,pop

JavaScript進階面試——ES6中函數的調用,call,apply和bind

5.合併數組

JavaScript進階面試——ES6中函數的調用,call,apply和bind

6.求數組最大值

JavaScript進階面試——ES6中函數的調用,call,apply和bind

7.判斷字符類型

JavaScript進階面試——ES6中函數的調用,call,apply和bind

4.3 bind

bind是function的一個函數擴展方法,bind以後代碼重新綁定了func內部的this指向,不會調用方法,不兼容IE8

JavaScript進階面試——ES6中函數的調用,call,apply和bind


分享到:


相關文章: