关于return的问题

function con(arr){
    this.arr=arr;
    return this.arr;//可以反出arr
    return this.arr.length;//为什么不能返出arr的长度呢?

}

var a=[1,2,3,4,5,6]
var mon=new con(a);
alert(mon);//length直接返出object
阅读 2.2k
3 个回答

这个和return 的类型有关系,new con相当于实例化构造函数,如果不主动写return的话返回值是构造函数实例化之后的对象,如果在构造函数有添加return 语句,分情况:

  1. 如果return引用类型(如数组、对象等),返回值为自己所写的return的引用类型;
  2. 如果return值类型(如数值、字符串等),自己所写的return不生效,返回值仍为构造函数的返回值,也就是实例化后的对象;
  3. 你上面的代码不知道你是写错还是提示而已,同一个函数内,只要执行return语句就会跳出函数不会继续执行

第一个return之后,后面的语句都不会执行了

返回的是: {"arr":[1,2,3,4,5,6]},也就是 con 对象

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题