function mix(souce,target){ for(var key in source){ if(!(source[key]==target[key])){ target[key]=source[key]; } return target; } }var vehicle={ engines:1, ignition:function(){ console.log('turn on my engine'); }, drive:function(){ this.ignition(); console.log("steering forward"); } }var car=mix(vehicle,{ wheels:4, drive:function(){vehicle.drive.call(this);} })求教大神 该代码中的this 分别指代什么 起到了什么作用为什么call(this)能够确保在drive()在car对象的上下文中执行
1 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
首先你给的代码让人费解。
另外你要补习一下call的知识点:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
简单来说就是call 方法改变了this指向。你应该是要this指向实例化对象car吧
添加回答
举报
0/150
提交
取消