怎样理解构造函数中的return语句

因为构造函数也是一个函数, 自然也可以有return语句, 不过和一般函数不太一样的是, 在构造函数中如果return的是一个对象, 则会直接返回这个对象, 如果return 的不是一个对象, 那在new时会忽略这个retrun, 转而返回this对象.

 

1. 下面演示构造函数中返回一个对象的情况, 此时就不会管this.name了.

function Person(name) {
    this.name = name;
    return {"name":"Mike" };
}

var lilei = new Person("Lilei");
lilei.name; // "Mike"

 

2. 下面演示构造函数中 return 一个非对象的情况, 返回值会被忽略

function Person(name) {
    this.name = name;
    return "Mike";
}

var lilei = new Person("Lilei");
lilei.name; // "Lilei"

Person("Hanmeimei"); // "Mike"

 

注意: 如果不使用new命令, 此时构造函数是普通函数, 返回值的类型没有限制, 该是什么就是什么

posted on 2019-10-11 11:54  aisowe  阅读(2044)  评论(0编辑  收藏  举报

导航