为了账号安全,请及时绑定邮箱和手机立即绑定

关于代码中的this

关于代码中的this

守着一只汪 2018-12-18 21:19:12
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吧

查看完整回答
反对 回复 2019-01-11
  • 1 回答
  • 0 关注
  • 420 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信