欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js手动实现bind教程

程序员文章站 2022-07-07 20:49:58
function.prototype.bind=function(obj){ var arg=array.prototype.slice.call(arguments...
function.prototype.bind=function(obj){
    var arg=array.prototype.slice.call(arguments,1);
    var context=this;
    var bound=function(){
      arg=arg.concat(array.prototype.slice.call(arguments));
      return context.apply(obj,arg);
    }
    var f=function(){}
    f.prototype=context.prototype;
    bound.prototype=new f();
    return bound;
}

function read(name, time, book) {
    console.log(`${name} is reading ${book} at ${time}`)
}

var tomread = read.bind(this, 'tom', 'morning')
tomread('<万历十五年>')
console.log(tomread.bind)