JavaScript 代码
var hh=34;
var bb = {
hh:12
}
function gg(){
alert(this.hh)
}
Function.prototype.bind = function(obj){
obj.fun = this;
return function(){
obj.fun()
}
};
var yy= gg.bind(bb);
yy(); //12
原理
1.给函数的原型对象添加bind 方法 这样所有函数都可以使用这个方法。
2.this.指向调用的主体 当函数gg调用bind方法时 bind方法中的this指向gg 也就是等于gg ,将this 作为方法添加给传入的对象。
3.以函数返回执行这个对象的gg 方法 因为不是立即执行,所以要以函数返回。
欢迎讨论指正,如有更好的方法,欢迎留言互相学习。