lixiaojuan12 / Summary-of-code

手写代码爽起来~~~
0 stars 0 forks source link

4. 内置apply #4

Open lixiaojuan12 opened 4 years ago

lixiaojuan12 commented 4 years ago
Function.prototype.myApply = function (context) {
    // 如果没有传或传的值为空对象 context指向window
    if (context == null) {
        context = window
    }
    let fn = mySymbol(context)
    context[fn] = this //给context添加一个方法 指向this
    // 处理参数 去除第一个参数this 其它传入fn函数
    let arg = [...arguments].slice(1) //[...xxx]把类数组变成数组,arguments为啥不是数组自行搜索 slice返回一个新数组
    context[fn](arg) //执行fn
    delete context[fn] //删除方法
}