请问这个调用子类方法中的Person.call(this,name)

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

qq_Young_Foreve_03924380

2016-10-12 22:27

这里面的this指的什么 有点懵了  然后是怎么个原理

写回答 关注

1回答

  • stone310
    2016-10-20 00:09:17

    举一个更简洁的例子:

    function A() {
        this.name = "111"   //这里的this,称为this1
    }
    function B() {
        A.call(this)       //这里发生了:1、执行了构造函数A 2、用这个this(称为this2)替换了A()上面的this;
    }
    //    this2.name="111"   执行了A()可以看成这样
    var b = new B();   //执行到这里,1、B()里面的this2确定了,就是指向new B(),也就是B;
    alert(b.name)

    如果感觉似懂非懂,再看这个:

    function A() {
        this.name = "111"
    }
    function B() {
        this.name = "222"
    }
    var b = new B();
    (function c() {          //c是个自执行函数
        A.call(b)          //执行A函数,用b去代替A里面的this,  因此A里面的语句可以看成:b.name="111"
    })()
    alert(b.name)


JavaScript深入浅出

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

281101 学习 · 1020 问题

查看课程

相似问题