手动实现一个bind方法
var p={
age:20
};
function Person(name,sex){
console.log(this);
console.log(this.age);
console.log(name,sex)
}
Function.prototype.bindy=function(context){
var _self=this,
args=Array.prototype.slice.call(arguments,1),
tempFn=function(){};
var fn = function(){
var newArgs=Array.prototype.slice.call(arguments);
_self.apply(this instanceof _self ? this : context,args.concat(newArgs));
}
tempFn.prototype=this.prototype;
fn.prototype=new tempFn();
return fn;
}
var p2=Person.bindy(p,'张三','男');
new p2('男');
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步