问答详情
源自:9-1 OOP(模拟重载、链式调用、模块化)

Pet.call(this, words) 这句话中的this该怎么理解?

    function Pet(words){        
    this.words = words;        
    this.speak = function () {
            console.log( this.words)
        }
    }    
   function Dog(words){        //Pet.call(this, words); //结果: Wang
       Pet.apply(this, arguments); //结果: Wang    }    var dog = new Dog('Wang');
    dog.speak();
Pet.call(this, words)    这句话中的this该怎么理解?


提问者:qq_慕莱坞3428004 2020-10-09 21:34

个回答

  • 慕娘9188839
    2022-06-02 15:22:30

    function Pet(words)是Pet类型的构造函数,Pet.call(this, words)就是用传递的this值,也就是Dog类型,来替换Pet构造函数中的this,使Dog类型的构造函数继承了Pet类型的构造函数,就可以获得其中的words属性和speak函数,所以Dog实例化出的dog对象可以使用Pet类型上的speak函数