SOURCE

// 实现apply函数的步骤
// 1.判断调用对象是否为函数
// 2.判断传入上下文是否存在,不存在设置为window
// 3.将函数调用作为上下文对象的一个属性
// 5.使用上下文来调用这个方法,并保存返回结果
// 6.删除新增的属性
// 7.返回结果
Function.prototype.myApply=function(context){
    // 判断调用对象是否为函数
    if(typeof this!=="function"){
        console.error("type err");
    }
    // 判断是否传入上下文,如果没有设置为window
    context = context||window;
    let result = null;
    // 将函数调用作为上下文的一个属性
    context.fn=this;
    // 使用上下文调用方法
    result = context.fn(...arguments[1]);
    // 删除新增属性
    delete context.fn;
    // 返回结果
    return result;
}

console 命令行工具 X clear

                    
>
console