call
1 | Function.prototype.call = function (context, ...args) { |
apply
1 | Function.prototype.apply = function (context, args) { |
bind
- bind时可以绑定部分参数,执行函数会将新参数和之前的部分参数一块传入并执行
- 绑定函数也可以使用new运算符构造,提供的this值会被忽略,但前置参数仍会提供给模拟函数
- bind多次this仍然指向第一次的指向
1 | Function.prototype.bind = function (otherThis, ...args) { |