javascript创建对象的方法

1.工厂模式

function Perso(name,age,job){

  var o=new Object();

  o.name=name;

  o.age=age;

  o.job=job;

  o.sayName=function(){
  alert(o.name)

  }
}

var person1=Person("Nico",23,"Doctor")

var Person2=Person("xll",12,"Teacher")

或者
var lev=function(){ 
return "脚本之家"; 
}; 
function Parent(){ 
var Child = new Object(); 
Child.name="脚本"; 
Child.age="4"; 
Child.lev=lev; 
return Child; 
}; 
var x = Parent(); 
alert(x.name); 
alert(x.lev()); 

  说明:1.在函数中定义对象,并定义对象的各种属性,对象属性的方法建议写在函数外面,这样可以避免重复重建该方法。

    2.引用对象,注意:使用的是var x=Parent(),而不是var x=new Parent(),因为后者会可能出现很多问题(前者也成为工厂经典方式,后者称之为混合工厂方式),不推荐使用new的方式使用该对象 

    3.函数最后用return返回该对象

    4.不推荐使用该方法

 2.构造函数模式

 1 function(age,name,job){
 2     this.name=name,
 3     this.age=age;
 4     this.job=job;
 5     this.sayName=function(){
 6       alert(this.name)
 7 }      
 8 }
 9 var person1=new Person('xll',23,"Doctor")
10 var person2=new Person('we',23,"Doctor")

说明: 
1.与工厂方式相比,使用构造函数方式创建对象,无需再函数内部重建创建对象,而使用this指代,并而函数无需明确return 
2.同工厂模式一样,虽然属性的值可以为方法,扔建议将该方法定义在函数之外 
3..同样的,不推荐使用这种方式创建对象,但仍需要了解 

要创建Person的实例,必须使用new操作符,经过以下4个步骤

1.创建一个对象

2.构造函数的作用域赋给新对象(因此this指向就指向这个新对象)

3.执行构造函数的代码(为这个新对象添加属性)

4.返回新对象

 

Person函数可以通过以下方法调用

//通过构造函数

var person1=new Person('xll',23,'Doctor');
person1.sayNmae();

//通过普通函数调用

Person('xll',23,'Doctor');  //添加到window
widow.sayName();    //xll

//在另一个对象的作用域调用

var o=new Object();

Person.call('xll',12,"doctor");

o.sayName()  //xll

 

posted on 2017-02-27 16:06  懒人猫  阅读(204)  评论(0)    收藏  举报