JavaScript创建对象常见方式

只谈情不闲聊 提交于 2020-02-06 18:21:31

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);

      }

    }

  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!