JavaScript创建对象常见方式

1.创建一个object的实例,再添加属性和方法

   var person = new Object();

    person .name = "zhangsan";

    person.age = 20;

    person.sayName = function(){

      console.log(this.name);

    }

2.字面量模式

   var person = {

      name:"zhangsan",

      age:20,

      sayName: function(){

        console.log(this.name);

      }

    }

3.工厂模式(解决创建多个相似对象和大量代码重复问题)

   function createPerson(name,age){

      var o = new Object();

      o.name = name;

      o.age = age;

      o.sayname = funtion(){

        console.log(this.name)

      }  

      return o;

    }

    var person1 = createPerson("zhangsan",20);

    var person2 = createPerson("lisi",15);

4.构造函数模式(普通函数和构造函数的区别就在于有没有被实例化,构造函数名称习惯用大写字母)

   function Person(name , age){

      this.name = name;

      this.age = age;

      this.sayName = function(){

        console.log(this.name)

      }

    }

  var person1 = new Person("zhangsan",20);

  var person2 = new Person("lisi",15);

5.原型模式(每个函数都有一个prototype属性,指向一个对象,这个对象可以共享属性和方法)

   function Person(){

    }

    Person.prototype.name = "zhangsan";

    Person.protoype.age = 29;

    Person.prototype.sayName = function(){

      console.log(this.name);

    }

    var person1 = new Person();

    person1.sayName();//"zhangsan"

6.组合使用构造函数和原型模式(最常见的方式,构造函数用于定义实例属性,原型用于定义方法和共享属性)

   function Person(name, age, job){

      this.name = name;

      this.age = age;

    }

     Person.prototype = {

      constructor : Person,

      sayName : function(){

        alert(this.name);

      }

    }

  

猜你喜欢

转载自www.cnblogs.com/jsshare/p/9263087.html
今日推荐