ES6 中的 Object.create 详解及应用实例

阅读时长 4 分钟读完

ES6 中的 Object.create 是用来创建一个新的对象并继承自另一个对象的方法。这个方法在前端开发中具有广泛的应用场景,可以很方便地实现面向对象的编程方式,同时提高了代码重用的效率。

什么是 Object.create

在 ES6 之前,JavaScript 中实现继承的方式有很多种,可以使用原型链、构造函数等实现。但是这些方式都存在一些问题,例如难以实现多重继承、继承属性共享问题等。

Object.create 的出现,解决了这些继承方式存在的问题,并且提供了更加灵活的方式来创建和继承对象。

Object.create 的基本用法

Object.create 的基本语法如下:

其中,proto 表示需要继承的原型对象,可以是一个简单的对象或者是 nullpropertiesObject 表示新对象的属性和值,可以是 null 或者一个对象。

下面是一个简单的示例:

-- -------------------- ---- -------
----- ------ - -
  --------- -
    --------------- ---- -- - - -----------
  -
-

----- ------- - --------------------- -
  ----- - ------ ----- -
---

------------------ -- -- ---- -- ---

在这个示例中,定义了 person 对象,其中包含一个 sayName 方法。接着使用 Object.create 方法创建了一个新的 student 对象,这个对象继承自 person 对象。

继承原型链的顶部对象

Object.create 的参数中,如果原型对象是 null,那么创建的新对象将没有原型,也就是不继承任何属性和方法。如下:

使用 Object.create 实现简单的继承

在面向对象编程中,继承是一个非常基础的概念。使用 Object.create 可以很方便地实现基于原型链的继承,从而降低代码重复度。

下面是一个继承的示例:

-- -------------------- ---- -------
----- ------ -
  ----------------- -
    --------- - -----
  -

  ----- -
    -------------- -- - - - -----------
  -
-

----- --- ------- ------ -
  ------------- -
    -------------
  -
-

----- --- - --- ------
---------- -- - -- - ---

在这个示例中,定义了一个基类 Animal 和一个子类 Dog,使用 extends 关键字实现了继承。Dog 类继承自 Animal 类,从而获得了 say 方法。

使用 Object.create 实现多重继承

在实际的开发中,经常会遇到需要继承多个类的情况。使用 Object.create 可以很方便地实现多重继承。

下面是一个继承多个类的示例:

-- -------------------- ---- -------
----- ------ -
  ----------------- -
    --------- - -----
  -

  --------- -
    --------------- ---- -- - - -----------
  -
-

----- ---------- -
  ------ -
    -------------- -- ---------
  -
-

----- ------------ ------- ------ -
  ----------------- -
    ------------
  -
-

------------------------------------- ----------------------

----- ------------ - --- --------------------
----------------------- -- -- ---- -- ---
-------------------- -- - -- ------

在这个示例中,使用 Object.assign 方法将 Programmer 类的原型对象的属性和方法复制到了 WebDeveloper 的原型对象中,从而实现了继承多个类的目的。

总结

  • Object.create 是用来创建一个新的对象并继承自另一个对象的方法。
  • Object.create 提供了更加灵活的方式来创建和继承对象。
  • 可以使用 Object.create 实现基于原型链的继承,从而降低代码重复度。
  • Object.create 还可以实现继承多个类的目的,提高了代码的复用性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64644373968c7c53b0523e79

纠错
反馈