为什么CopyFun构造函数通过new 可以继承来自Fun的属性?

function Fun() {    this.name = "mary";    this.sec = function () {
        console.log("sec");
    }
}

function CopyFun() {    // Fun.call(this);
    this.fun = Fun;    this.fun();
}var fun = new CopyFun();fun.sec();  // secconsole.log(fun.name);  // maryconsole.log(fun.hasOwnProperty("sec"));  // true

为什么CopyFun中this.fun()方法执行就可以创建属性?

我是这样理解的:

this.fun = function(){    this.name = "mary";    this.sec = function () {        console.log("sec");
    }
}

当执行 this.fun() 这一步时应该是一个正常函数的调用,由于没有返回值所以应该返回undefined。

但实际情况是,它相当于执行了Fun.call(this),创建的属性name和sec,这一点不能理解,望哪位大神给解释一下,谢谢!!!。


萧十郎
浏览 510回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript