欢迎光临散文网 会员登陆 & 注册

前端面试题:手写call、bind、apply

2021-05-29 17:51 作者:坏蛋Dan丶  | 我要投稿

1. call

用法:


分析:

使用call可以调用对方的方法并且改变当前上下文为context,为立即执行。


参数:

· context:  需要绑定的环境上下文

· ...args:剩余参数,传入目标方法的参数


实现:


2. apply

apply和call基本上一样,除了传参的方式不同,直接贴代码


3. bind

用法:

分析:

bind返回一个function,不会立即执行。

参数:

· context: 上下文

· ...args: 第一次传入的参数

· ...secArgs: 第二次传的参数

问题:

bind返回的是一个function,那就有两种调用方法,直接调用和new调用

该如何处理呢?

其实在构造函数中,一个实例在new的过程中,this的instanceof是会指向当前构造函数的,因此可以利用这一特性判断是new调用还是直接调用。

实现:


不足之处麻烦点出,谢谢!

前端面试题:手写call、bind、apply的评论 (共 条)

分享到微博请遵守国家法律