之所以要写这篇,是因为曾经面试被要求在白纸上手写bind实现
结果跟代码一样清晰明确,一阵懵逼,没写出来!
下面,撸起袖子就是干!~
把call、apply、bind一条龙都整一遍!~~
call
定义与使用
Function.prototype.call(): https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/call
1 | // Function.prototype.call()样例 |
1 | // 输出: |
手写实现
1 | /** |
1 | // 验证样例 |
1 | // 输出: |
apply
定义与使用
Function.prototype.apply(): https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/apply
1 | // Function.prototype.apply()样例 |
1 | // 输出: |
手写实现
1 | /** |
1 | // 验证样例 |
1 | // 输出: |
bind
定义与使用
- Function.prototype.bind()
- https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
1 | // Function.prototype.bind()样例 |
1 | // 输出: |
手写实现
1 | /** |
1 | // 验证样例 |
1 | // 输出: |
最后,麻烦以后面试不要再考这道题了!
~