JS中带返回值的构造函数

传统语言中,构造函数是没有返回值的。构造函数与普通函数的区别可以认为是:构造函数中没有return语句,普通函数可以return;构造函数中使用this定义成员变量和成员方法,普通函数中不使用this关键字定义成员变量和方法。然而在JavaScript中构造函数可以有返回值也可以没有。

1.没有返回值的情况像其他传统语言一样,返回实例化的对象:

function Person(){
    this.name="monster1935";
    this.age='24';
    this.sex="male";
}
console.log(Person());  //undefined
console.log(new Person());//Person {name: "monster1935", age: "24", sex: "male"}

2.如果存在返回值则检查其返回值是否为引用类型,如果为非引用类型,如(string,number,boolean,null,undefined),上述几种类型的情况与没有返回值的情况相同,实际返回实例化的对象:

function Person(){
    this.name="monster1935";
    this.age='24';
    this.sex="male";

    return "monster1935";
}
console.log(Person());  //monster1935
console.log(new Person());//Person {name: "monster1935", age: "24", sex: "male"}

3.如果存在返回值是引用类型,则实际返回该引用类型:

function Person(){
    this.name="monster1935";
    this.age='24';
    this.sex="male";

    return {
        name:'Object',
        age:'12',
        sex:'female'
    }
}
console.log(Person());  //Object {name: "Object", age: "12", sex: "female"}
console.log(new Person());//Object {name: "Object", age: "12", sex: "female"}

原文:http://blog.csdn.net/a1247529789/article/details/51645951

猜你喜欢

转载自blog.csdn.net/DreamFJ/article/details/76775265
今日推荐