js 构造函数的返回值

js的构造函数

构造函数: 构造函数只是一些使用new操作符时被调用的函数 ----- 来自《你不知道的js》

new关键字

new操作符执行时进行的操作: (来自MDN new操作符)

  • 创建一个空的简单JavaScript对象(即{});
  • 链接该对象(即设置该对象的构造函数)到另一个对象 ;
  • 将步骤1新创建的对象作为this的上下文 ;
  • 如果该函数没有返回对象,则返回this

构造函数返回值

  1. 如果不写return -> 直接返回默认创建的新对象
function foo(){
      var obj = {'name': 'kenan'};      
}
var result = new foo();
result;  // ==> foo对象
  1. 如果返回this -> 直接返回默认创建的新对象
function foo(){
      var obj = {'name': 'kenan'}; 
      return this;    
}
var result = new foo();
result;  // ==> foo对象
  1. 如果返回的是基本数据类型: 直接返回默认创建的新对象
function foo(){
      var obj = {'name': 'kenan'}; 
      return 1000;    
}
var result = new foo();
result;  // ==> foo对象
  1. 如果返回到是对象 -> 直接把这个对象, 返回给外界, 外界接受到的就是这个函数内部返回的对象
function foo(){
      var obj = {'name': 'kenan'}; 
      return obj;
      // return [1,2,3]  // 若是直接返回数组[1,2,3], result输出[1,2,3]
}
var result = new foo();
result;  // ==> {'name': 'kenan'} 
原文地址:https://www.cnblogs.com/kenanyah/p/13246934.html