为什么这个世界需要手撕代码?
言归正传,这次带来的是不严谨的apply,call,bind 的实现。
Function.prototype.myapply = function(){
// 我们使用 apply(this),第一个参数一定是个this或者对象吧,如果不填写的话我们默认入全局环境咯
context = arguments[0] || window;
// 取一个独一无二的key,防止与其他属性名字冲突。
let key = Symbol();
// 此处的this是我们的方法,因为调用apply的是函数。
context[key] = this;
// 我们执行他,并拿到结果。
let result = context[key](arguments[1]);
return result;
----------------------------------
// 同理,我们的call和apply 的区别不就是参数的区别而已嘛?
// 改一改
let result = context[key](...arguments.slice(1));
//最后,我们的bind就是不传参而已拉。
return context[key]
// 最后最后, 其实使用完函数应该在对象上删除掉的jav
}