代码改变世界

js 构造函数

2014-04-22 10:20  Z梦  阅读(451)  评论(2编辑  收藏  举报
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个步骤:

  1. 创建一个新对象;
  2. 将构造函数作用域赋给新对象(因此this就使用此对象)
  3. 执行构造函数的代码
  4. 返回新对象

构造函数与其他函数的唯一区别:调用方式不同

//当做构造函数使用
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