封装函数 f,使 f 的 this 指向指定的对象

1,249 阅读1分钟

如题:封装函数 f,使 f 的 this 指向指定的对象

function bindThis(f, oTarget) {
    if (f.bind) {
        return f.bind(oTarget);
    } else {
        return function(){
            return f.apply(oTarget,arguments);
        };
    }
}

考虑兼容性对bind进行了判断,apply之所以要放在一个函数里面是因为bind返回的是一个函数,而apply方法是立即执行函数,所以需要放在一个函数里面,到调用的时候再立即执行。