gpt4 book ai didi

javascript - 简单对象 vs. 工厂 vs. 构造函数——实例

转载 作者:数据小太阳 更新时间:2023-10-29 04:47:33 26 4
gpt4 key购买 nike

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

  1. 通过简单的对象创建
  2. 通过工厂功能
  3. 通过构造函数

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

谁能简单举例说明什么时候使用这些方法中的哪一个来创建对象,让天真的人也能看懂?

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

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

最佳答案

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

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

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

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

Update: See Dave Newton's comment for a good example of when to use a factory

关于javascript - 简单对象 vs. 工厂 vs. 构造函数——实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33407529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com