构造函数在不返回值的情况下,默认会返回新对象实例。而通过构造函数的末尾添加一个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>