Javascript 进阶 6-1 原型鍊的概念 - 为什么有原型

这篇文章要来接绍 Javascript 的原型链

那么在介绍主角原型链之前呢,我们要来先介绍 Javascript 的名称由来

在早期呢,Javascript 的名称跟 Java 有很大的关係,两个程式语言的名称非常相近

但是写法上呢却有着根本的不同

不过在 Javascript 推出的时候,基于商业上的考量,为了吸引 Java 的开发者也投入 Javascript 的开发,所以将这个语言的名称定义成大家所熟悉的 Javascript。

那么其中 Javascript 的一个特性是源自于 Java 的,就是使用 new 这个方法产生一个新的物件。

Java 的开发者看到 Javascript 也可以使用 new 这个方法产生一个新的物件会觉得两者蛮相近的,特别有亲切感。

但其实这两个语言的根本运作有很大的不同,透过 new 这个方法所产生的物件会有一个 继承 的特性。

在 Java 是属于 类别继承
而 Javascript 则是属于 原型继承

那么首先我们先来看一下属于 Java 的 类别继承 吧~!

类别继承

http://img2.58codes.com/2024/20121770DaljqMyPTK.png

那么 class 是属于 Java 物件导向的一种概念,当你需要定义 狗,而且数量不只一只的时候,也就是需要重複定义的时候。

首先你会创建一个狗的类别,其中包含了一些狗应该要有的通用属性,跟一些方法。

以属性来说,会有颜色、体型等,方法则是吠叫之类的。

那么再来就是定义狗的实体,例如说我们定义一只狗叫做比比,比比的颜色是棕色。

透过这个方式呢我们可以定义出无限多只想要的狗出来。

http://img2.58codes.com/2024/20121770ASxoUUnuLK.png

好~具体来说,假设现在我们是造物主,我们希望在这个世界上有非常多的狗,所以我们必须先在脑中对于狗有一些特定的通用印象,这个印象就是所谓的 class。

而当这个想法要实际创造出一只狗的时候,就需要用到刚刚提到的 new 的方法进行实体化。

而实体化出来的狗就叫做 Instance。

http://img2.58codes.com/2024/20121770jBslxhcu8Y.png

并且实体化的狗具有自己的毛色,体型大小以及能够吠叫的方法。

所以实体的继承,就是可以取用 class 原型的属性以及方法。

http://img2.58codes.com/2024/20121770RZpYCxGKCM.png

原型继承

http://img2.58codes.com/2024/20121770DdS8dZKftD.png

那么为什么 Javascript 使属于原型继承呢?

因为 Javascript 中的特性,根本上基本都是物件,所以并没有 class 的概念,所以他必须使用原型的概念来做出类似 类别(class) 的方法。

在这边也稍微提一下,Javascript 虽然没有类别继承,但在ES6中也推出了类似 类别(class)继承的方法,但是要特别注意,ES6的 class 本质上还是 Javascript 的原型继承,并不是引入其他语言的类别导向。

好~如果没有问题的话,我们就开始来介绍原型吧! 汪汪~


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章