首页 > 编程语言 >为什么 JavaScript 采用原型?

为什么 JavaScript 采用原型?

时间:2022-09-19 11:00:23浏览次数:168  
标签:为什么 对象 创建 JavaScript 创建对象 原型 简单

为什么 JavaScript 采用原型?

Photo by 卡米拉巴塔尼 on 不飞溅

JavaScript 是一种基于原型的语言。

自从我第一次开始学习 JavaScript 以来,我一直在乏味地听到这个故事。那么,为什么 JavaScript 会采用原型呢?我将尝试总结我对采用我发现的原型的原因的猜测。

1. JavaScript 的诞生

要想知道 JavaScript 为何选择原型,自然要看 JavaScript 诞生的背景。当时,开发 JavaScript 的网景公司,正所谓“与微软的 Internet Explorer 抢占浏览器市场份额,作为其浏览器导航器的竞争对手出现。 浏览器大战 '正在发生。

在这样的背景下,JavaScript 的诞生就是为了给浏览器添加动画等简单的动态元素。为了增加浏览器的占有率,必须制作更多的网页在导航器上运行,这意味着更多的人不得不使用导航器提供的JavaScript。换句话说,他们希望它是一种简单的语言,即使是没有深入开发知识的设计人员和非开发人员也可以使用。所以 JavaScript 必须是一种“简单”的语言。

2. 用 Ja​​vaScript 创建对象

就个人而言,我认为揭示 JavaScript 简单性的最佳方式是创建一个对象。让我们在 JavaScript 中创建一个 person 对象。

 const person = { 姓名:'bling',性别:'male' }

变量 person 现在包含一个新对象。现在让我们在 Java 中实现相同的操作。

 公共类应用程序{ 公共静态无效主要(字符串[]参数){  
 final Person person = new Person("bling", "male");  
 }  
      
 公共静态类人{ 私有最终字符串名称;  
 私人最终字符串性别; 公共人员(最终字符串名称,最终字符串性别){  
 this.name = 名称;  
 this.gender = 性别;  
 }  
 }  
 }

一目了然,对于初学者来说,可以猜出哪个更简单。在创建对象之前,您可以创建一个类,指定对象具有哪些属性以及它应该是什么数据类型,然后才能创建对象。

当然,随着结构越来越复杂,规模越来越大,在相同的基础上比较语言就没有意义了。然而,考虑到“简单”的简单标准,JavaScript 是压倒性的。

原型是可以以这种方式创建对象的原因。 {} 如果您以这种方式创建对象,则为“对象文字” 新对象() 它的工作原理类似于创建一个对象创建空对象后, [[原型]] 如果属性是内置类 目的 原型 链接到参考属性。在那之后 {} 内部属性被创建为对象属性。

3.继承与委托

JavaScript 之所以如此简单,是因为在原型语言中重用代码的方式是由委托的概念组成的。

继承用于重用基于类的语言中的代码。继承是指创建一个新类的过程,该类与现有类几乎相同,但只有一些差异。创建一个新对象作为派生类的实例。如果通过继承父类来创建多个子类,则结构相似,因此具有可预测和稳定的优点。另一方面,问题在于,由于生成的类之间的耦合很大,所以一个部分的变化影响范围很广。因此,结构一旦建立就很难改变。另外,多重继承还有一个缺点,就是很难同时继承两个类。

使用委托以原型方式重用代码。当您创建一个新对象时,您可以通过引用已经存在的对象的一部分(即其原型)来重用代码。当然,由于对象的形状是灵活的,所以属性可以自由添加或删除,因此比较难预测,并且存在出错的可能性更高的问题。然而,由于没有强制执行直接的结构相似性,因此对象之间的耦合相对较弱。此外,可以通过引用多个对象的原型来实现多重继承。至关重要的是,由于这些特性,可以确保上述创建对象的简单性并同时创建其形状以制作简单的对象。

在理解内部实现方面,JavaScript 并不像看起来那么简单,但使用起来非常简单。即使是对开发没有深入了解的人也能够更轻松地编写更短更简单的代码。

JavaScript 基于原型的决定性原因是它的简单性。 JavaScript 诞生的目的是让非开发人员或开发知识很少的人能够进行开发。与必须创建类并预先定义其形状才能创建对象的类相比,JavaScript 能够非常简单轻松地创建对象。为了实现这一点,我认为最好的选择是构建一个通过委托重用代码的原型。

参考

JavaScript 的历史:你需要知道的一切

You-Dont-Know-JS/README.md 在第 2 版 · getify/You-Dont-Know-JS

JavaScript 为什么选择原型?

为什么 JavaScript 是这样的?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/37826/54091910

标签:为什么,对象,创建,JavaScript,创建对象,原型,简单
From: https://www.cnblogs.com/amboke/p/16706960.html

相关文章

  • 2415. 在 JavaScript 中反转二叉树的奇数层
    2415.在JavaScript中反转二叉树的奇数层鉴于根一个完美的二叉树,反转每个节点的值奇怪的树的层次。例如,假设第3层的节点值为[2,1,3,4,7,11,29,18],那么它应......
  • 我的设计模式之旅、12 原型模式
    编程旅途是漫长遥远的,在不同时刻有不同的感悟,本文会一直更新下去。思考总结思考问题如果没有原型模式,当我们复制复杂对象,在新建相同类的对象,遍历原始对象中的所有成员变......
  • 自我对原型的理解
    <!DOCTYPEhtml><html><head> <title>原型</title> <metacharset="utf-8"></head><body> <scripttype="text/javascript">/*//构造函数 functionObj(name,age){ thi......
  • javascript中的一些细节,undefined和null的区别,什么情况下是false,函数赋值,等等
    如果不赋值,就使用默认值,page=1,size=10如果赋值按位置赋值,如果要跨越位置赋值size,则page定义为undefined则使用的是默认值如下图:javascript什么情况下是false,什么情况......
  • 2021年3月-第03阶段-前端基础-JavaScript基础语法-JavaScript基础第01天
    1-编程语言1.1编程编程:就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。计算机程序:就是计算机所执行的一系列的指令集合,而......
  • [JS]原型的基本概念
    目录原型系统原型基本概念示例关系改进创建对象的模式单纯使用原型模式创建对象综合构造函数和原型模式创建对象原型系统原型基本概念原型(prototype)是函数特有的属......
  • Appwrite 喜欢开源:为什么我选择赞助 Offen
    Appwrite喜欢开源:为什么我选择赞助Offen开源是我们在Appwrite所做的一切的❤️,我们希望启用和促进开源社区,帮助我们成长为令人兴奋的24,000颗星GitHub.开源项目需......
  • 使用 Amazon Rekognition、Lambda 和 JavaScript 进行面部识别
    使用AmazonRekognition、Lambda和JavaScript进行面部识别创建面部搜索lambda函数以按图像搜索面部亚马逊识别亚马逊识别是一个基于云的SAAS平台提供计算机......
  • JavaScript 中的混入
    JavaScript中的混入Photoby阿列克谢·鲁班on不飞溅介绍在继承中,大多数编程语言不支持多级继承,这意味着您不能为特定类拥有多个父级。Javascript也不支持多级......
  • 简单的 JavaScript 数字格式化方法
    简单的JavaScript数字格式化方法每个大型社交媒体网站都以与93.1K追随者、100万订阅者或2.5B浏览量相同的方式格式化他们的数字,他们这样做是因为用紧凑的数字设计......