因为构造函数也是一个函数, 自然也可以有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命令, 此时构造函数是普通函数, 返回值的类型没有限制, 该是什么就是什么

发布评论

分享到:

IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

怎样理解没有this的构造函数讲解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。