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


分享到:


相關文章: