JS中带返回值的构造函数

来源:互联网 发布:智能电视网络dns设置 编辑:程序博客网 时间:2024/06/06 03:24

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

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

function Person(){    this.name="monster1935";    this.age='24';    this.sex="male";}console.log(Person());  //undefinedconsole.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());  //monster1935console.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

原创粉丝点击