zoukankan      html  css  js  c++  java
  • JS 创建对象的7种方法(一)

    1.工厂模式(Factory)

     1 function createPerson(name, age, title){
     2     var o = new Object();
     3     o.name = name;
     4     o,age = age;
     5     o.title = title;
     6     o.sayName = function(){
     7         alert(this.name);
     8     }
     9     return o;
    10 }   
    11 
    12 var person1 = createPerson("Greg", 30, "Doctor");
    13 var person2 = createPerson("Lisa", 20, "Teacher");  

     工厂模式不能识别对象的类型。

    2.构造函数模式(Constructor)

     1 function Person(name, age, 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("Nicholas", 18, "Software Engineer");
    10 var person2 = new Person("Greg", 27, "Doctor");   

     按照惯例,构造函数始终都应以一个大写字母开头。

     要创建一个Person的新实例,必须使用new操作符。

     person1和person2分别保存着Person的一个不同的实例,这两个对象都有一个constructor属性,该属性指向Person:

    alert(person1.constructor == Person)  //true
    alert(person2.constructor == Person)  //true

     构造函数的问题: 构造函数中的所有方法都要在每个实例上重新创建一遍。

    alert(person1.sayName == person2.sayName);    //false
  • 相关阅读:
    BZOJ1218:[HNOI2003]激光炸弹
    洛谷【P3407】散步
    洛谷【P1142】轰炸
    洛谷【P1358】扑克牌
    洛谷【P1236】算24点
    洛谷【P2003】平板
    TVYJ1266:费解的开关
    POJ1958:Strange Towers of Hanoi
    孤独地、凄惨地AK
    ios---scrollview用法总结
  • 原文地址:https://www.cnblogs.com/PrajnaParamita/p/5748842.html
Copyright © 2011-2022 走看看