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

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

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

正在回答

1 回答

举一个更简洁的例子:

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)


2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号