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

Posted aisowe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样理解构造函数中的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命令, 此时构造函数是普通函数, 返回值的类型没有限制, 该是什么就是什么

以上是关于怎样理解构造函数中的return语句的主要内容,如果未能解决你的问题,请参考以下文章

理解Python函数和方法

怎样理解没有this的构造函数

在Python中如何理解返回值?

javascript 函数和作用域

JavaScript之函数

C语言中return语句怎样返回两个或多个值