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

来源:9-1 OOP(模拟重载、链式调用、模块化)

qq_慕莱坞3428004

2020-10-09 21:34

    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该怎么理解?


写回答 关注

1回答

  • 慕娘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函数

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281111 学习 · 1020 问题

查看课程

相似问题