猿问

关于代码中的this

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对象的上下文中执行


守着一只汪
浏览 421回答 1
1回答

慕姐4208626

首先你给的代码让人费解。另外你要补习一下call的知识点:call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 简单来说就是call 方法改变了this指向。你应该是要this指向实例化对象car吧
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答