JavaScript 理解原型链

JavaScript 理解原型链

当你开始学习编程时,你可能会遇到一个术语 面向对象编程 。在这里,我们将了解它的含义,并承认它是将数据分组为具有属性的“对象”。在许多编程语言中创建这些对象的关键字是类。你可以使用构造函数和许多其他公共和私有函数来定义一个类。如果你想让一个类继承另一个类,你可以编写简单的继承语法。你已经创建了一系列的继承。直到ES2015,该语言没有实现类。相反,它们使用了原型链。新的ES6“class”隐藏了原型链的内部工作原理。如果你想使用JavaScript的面向对象编程范式来开发高性能代码,了解原型链的工作原理至关重要。对于那些熟悉(或不太熟悉)计算机的人来说,原型链可能是一个链表。这是一个严重简化的说法。

我们如何初始化我们的链? JavaScript中的所有对象都有一个原型。一个对象的原型也被认为是一个对象。

function Dog(name) { 
  this.name = name; 
}

因为原型是一个对象,所以原型有自己的原型。在这种情况下,Dog.prototype的原型是Object.prototype

<script type="text/javascript" charset="utf-8"> 
    function Dog(name) { 
      this.name = name; 
    } 
    console.log( 
        Object.prototype.isPrototypeOf(Dog.prototype)); // yields true 
</script>

输出:

true

回想一下 hasOwnProperty() 方法。

<script type="text/javascript" charset="utf-8"> 
    function Dog(name) { 
      this.name = name; 
    } 
    let duck = new Dog("Donald"); 
    console.log(duck.hasOwnProperty("name")); // yields true 
</script>

输出:

true

hasOwnProperty() 方法在Object.prototype中定义,可以通过Dog.prototype访问,变量”duck”也可以访问它。它清楚地解释了原型链。在这个原型链中,”Dog”是”duck”的超类型,而”duck”是子类型。对象是”Dog”和”duck”的超类型。我们将Object作为JavaScript中所有对象的超类型。任何对象都可以使用hasOwnProperty() JavaScript方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程