接著上一次我們這次來主要介紹ES6中函數的調用,call,apply和bind,在面試中可能會遇到的問題。
3.ES6中函數的調用
箭頭函數不可以當作構造函數使用,也就是不能用new命令實例化一個對象,否則會拋出一個錯誤
箭頭函數的this是和定義時有關和調用無關
調用就是函數調用模式
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.劫持其他對象的方法
3.兩個函數實現繼承
4.為類數組(arguments和nodeList)添加數組方法push,pop
5.合併數組
6.求數組最大值
7.判斷字符類型
4.3 bind
bind是function的一個函數擴展方法,bind以後代碼重新綁定了func內部的this指向,不會調用方法,不兼容IE8
閱讀更多 深秀DeepShow 的文章
關鍵字: 技術 JavaScript 函數