var aa ={ name:"boy", age:12, like: function(){ console.log(this.name); } } //aa.like();//这样子调用永远不会有this报错的问题。 function box(){ return function(){ aa.like(); } } //box()();//这样子也不会报错 var bb = aa.like; //bb();//这样子写,作用域就会出错 //我们用bind解决这个问题 //aa.like.bind(aa); var cc = aa.like.bind(aa); cc();//这样是正常的 //使用call方法必须立刻执行 bb.call(aa);//这样子也是正常的