function Person(name,age,job){ this.name=name; this.age=age; this.job=job; this.sayName=function(){ alert(this.name); } } var person1=new Person("Lucy",22,"nurse")
使用new操作符,会经历一下4个步骤:
- 创建一个新对象;
- 将构造函数作用域赋给新对象(因此this就使用此对象)
- 执行构造函数的代码
- 返回新对象
构造函数与其他函数的唯一区别:调用方式不同
//当做构造函数使用 var person=new Person("Lucy",22,"nurse"); person.sayName(); //Lucy //作为普通函数调用 Person("Lucy",22,"nurse"); //添加到window window。sayName(); //Lucy //在另一个对象的作用域中调用 var o=new Object(); Person.call(o,"Lucy",22,"nurse"); o.sayName(): //Lucy