bind方法可以永久的绑定上下文对象,无论被谁调用,上下文都是固定的:
1 /** 2 * Created by wp on 2015-09-26. 3 */ 4 var user={ 5 name:‘wpmoon‘, 6 func: function() { 7 console.log(this.name); 8 } 9 }; 10 11 var foo={ 12 name:‘foobar‘ 13 }; 14 15 foo.func=user.func; 16 foo.func();//输出的是foobar 17 18 foo.func1=user.func.bind(user); 19 foo.func1();//输出的是wpmoon 20 21 func=user.func.bind(foo); 22 func();//输出的是foobar 23 24 func2=func; 25 func2();//输出的是foobar
foo.func1使用了bind方法,将user作为this指针绑定到user.func,调用foo.func1()时,this指针为user,所以结果是wpmoon
原文:http://www.cnblogs.com/wpmoon/p/4841572.html