简单对象与工厂与构造函数 - 实例

时间:2015-10-29 06:42:44

标签: javascript oop constructor factory

在JavaScript中有三种创建对象的方法:

  1. 通过简单的对象创建
  2. by Factory function
  3. by Constructor function
    1. 简单对象创建:

      var ronaldo = {
          name: "Ronaldo",
          age: "35",
          quote: "Hi I am Ronaldo", 
          salary: function(x){ return x+2500; }
      };
      
    2. 工厂职能:

      function human(x,y,z,i){
          return{
              name: x,
              age: y,
              quote: z,
              salary: function(i){ return i+2500; }
          }
      };
      var Zini = human('Zenidan','41','I am Zidane',7500);
      
    3. 构造函数:

      var human = function(x,y,z,i){
          this.name = x,
          this.age = y,
          this.quote = z, 
          this.salary = function(i){ return i+2500; }
      };
      var Lampd = new human('Frank Lampard','39','I am Frank J Lampard',5500);
      
    4. 有人可以提供简单的插图,说明何时使用这些方法中的哪一种以简单的方式创建对象,以便天真也可以理解?

      我浏览了以下链接,但理解起来有点复杂:

      所以我要求一些简单的实际案例。

1 个答案:

答案 0 :(得分:3)

将简单对象用于数据:当您需要的只是一组键/值对时。

在一个简单对象的示例中,您不仅仅拥有数据:salary方法为对象添加了行为。如果您最终会得到许多这样的对象,那么只有一个salary方法在所有对象之间共享,而不是每个对象都有自己的{{1},这对性能和可维护性来说更好。 } 方法。在许多对象之间共享方法的一种方法是将方法放在对象的原型上。

当您需要创建作为原型实例的对象时,可以使用构造函数。这是一个阅读相关内容的好地方,但它有点密集:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain

上面的MDN链接还演示了ECMAScript 2015 salary语法,它是构造函数的替代方法。

  

更新:请参阅Dave Newton的评论,了解何时使用工厂的好例子