构造函数在不返回值的情况下,默认会返回新对象实例。而通过构造函数的末尾添加一个return语句,可以重写调用构造函数时的返回值
情况1:函数中有return语句,弹出name ,age
script type="text/javascript">
function Person(name, age, job){
var sex= 'M'; //name只是一个局部变量
var person = new Object();
person.name = '高伟刚';
person.age = 23;
/*构造函数在不返回值的情况下,默认会返回新对象实例。而通过构造函数的末尾添加一个return语句,可以重写调用构造函数时的返回值*/
return person;
}
//1.创建一个新对象
//2.将构造函数的作用域赋给新对象(因此this就指向这个新对象)
//3.执行构造函数中的代码为这个新对象添加属性
//4.返回新对象
var person1 = new Person();
for(var prop in person1){
alert(prop); //name, age
}
</script>
情况2:函数中没有return语句
<script type="text/javascript">
function Person(name, age, job){
var sex = 'M'; //name只是一个局部变量,如果要使sex成为全局变量,可以省略var
this.job = 'Software Engineer';
var person = new Object();
person.name = '高伟刚';
person.age = 23;
/*构造函数在不返回值的情况下,默认会返回新对象实例。而通过构造函数的末尾添加一个return语句,
可以重写调用构造函数时的返回值*/
//return person;
}
//1.创建一个新对象
//2.将构造函数的作用域赋给新对象(因此this就指向这个新对象)
//3.执行构造函数中的代码为这个新对象添加属性
//4.返回新对象
var person1 = new Person();
for(var prop in person1){
alert(prop); //job
}
</script>