一般不需要,事实上可以有。
返回字符串
如下
Person() 这个构造函数执行以后返回字符串 doubi。这里是我随便编的一个。
但是console.log(new Person())返回的是Person这个实例化的对象。这个和return没啥关系。
<meta charset="utf-8">
<script>
function Person(){
this.name="monster1935";
this.age='24';
this.sex="male";
return "doubi";
}
console.log(Person()); //doubi
console.log(new Person());//Person {name: "monster1935", age: "24", sex: "male"}
如果返回值为引用类型
如下,返回的那玩意类型是引用类型。(数组, 对象, 函数等)。如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对象。(不是this对象)
function Person(){
this.name="monster1935";
this.age='24';
this.sex="male";
return {
name:'Object',
age:'12',
sex:'female'
}
}
console.log(Person()); //Object {name: "Object", age: "12", sex: "female"}
console.log(new Person());//Object {name: "Object", age: "12", sex: "female"}
总结
- return的是五种简单数据类型:String,Number,Boolean,Null,Undefined。 这种情况下,忽视return值,依然返回this对象。
- return的是Object 这种情况下,不再返回this对象,而是返回return语句的返回值。
也就是说如果你return的是非引用类型的话。并没有什么卵用。如果你返回一个对象,那么这个对象会替代构造函数中的this
挺别扭但是so easy。