先上结论:

用new执行构造器函数时:1.若构造器函数没有返回值,则默认返回this;2.若构造器函数返回非对象的值,则返回this;3.若构造器函数返回对象,则返回该对象

        var Test1=function(){
            this.name="wang";
            return {birth:"1995"};
        }
        Test1.prototype.phone="12345";
        console.log(new Test1());

        console.log("///////////////////////////////////////////////////////////////");
        var Test2=function(){
            this.name="wang";
            return "hello";
        }
        Test2.prototype.phone="12345";
        console.log(new Test2());

第一部分代码返回一个带有birth属性的对象,但没有name属性和phone属性。若将返回值注释掉,则返回带有name和phone属性的对象,但没有birth属性

第二部分代码返回带有name和phone属性的对象。返回的字符串并没有卵用。

此结论在ES6中class的constructor函数同样适用

分类: javascript

发表评论

电子邮件地址不会被公开。 必填项已用*标注