iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >为什么JS会有原型的概念
  • 560
分享到

为什么JS会有原型的概念

2024-04-02 19:04:59 560人浏览 独家记忆
摘要

这篇文章主要介绍“为什么js会有原型的概念”,在日常操作中,相信很多人在为什么JS会有原型的概念问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”为什么JS会有原型的概念”的疑惑

这篇文章主要介绍“为什么js会有原型的概念”,在日常操作中,相信很多人在为什么JS会有原型的概念问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”为什么JS会有原型的概念”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

因为早期的浏览器只能用来浏览,不具备与访问者互动的能力。比如,如果网页上有一栏"用户名"要求填写,浏览器就无法判断访问者是否真的填写了,只有让服务器端判断。

如果没有填写,服务器端就返回错误,要求用户重新填写,这太浪费时间和服务器资源了。

这个时候需要一门网页脚本语言,这种脚本语言能够完成一些简单的操作,比如判断用户有没有填写表单。刚好这个时候是向对象编程(object-oriented  programming)最兴盛的时期,c++是当时最流行的语言,而Java语言也马上推出。

所以javascript作者也受到了启发,Javascript里面所有的数据类型都是对象(object),这一点与Java非常相似。但是直接使用java的"继承"机制来实现,又觉得过于笨重,但是,Javascript里面都是对象,必须有一种机制,将所有对象联系起来。所以,javascript作者最后还是设计了"继承"。

但是,他不打算引入"类"(class)的概念,因为一旦有了"类",Javascript就是一种完整的面向对象编程语言了,这好像有点太正式了,而且增加了初学者的入门难度。

他考虑到,C++和Java语言都使用new命令,生成实例。

C++的写法是:

ClassName *object = new ClassName(param);

Java的写法是:

Foo foo = new Foo();

这时,他想到C++和Java使用new命令时,都会调用"类"的构造函数(constructor)。他就做了一个简化的设计,在Javascript语言中,new命令后面跟的不是类,而是构造函数。

但是很快发现用构造函数生成实例对象,有一个缺点,那就是无法共享属性和方法。

每一个实例对象,都有自己的属性和方法的副本。这不仅无法做到数据共享,也是极大的资源浪费。

最终加入了prototype属性的引入

考虑到这一点,作者决定为构造函数设置一个prototype对象属性。

所有实例对象需要共享的属性和方法,都放在这个对象里面;那些不需要共享的属性和方法,就放在构造函数里面。

实例对象一旦创建,将自动引用prototype对象的属性和方法。

由于所有的实例对象共享同一个prototype对象,那么从外界看起来,prototype对象就好像是实例对象的原型,而实例对象则好像"继承"了prototype对象一样。

总结

  • JavaScript采用原型编程,所有对象都能共享原型上的方法,节省内存;

  • 同时基于原型这一实现思想,JavaScript通过找对原型链,方便地实现了继承。

这就是原型编程带来的2个最大好处!!!

到此,关于“为什么JS会有原型的概念”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 为什么JS会有原型的概念

本文链接: https://www.lsjlt.com/news/66877.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 为什么JS会有原型的概念
    这篇文章主要介绍“为什么JS会有原型的概念”,在日常操作中,相信很多人在为什么JS会有原型的概念问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”为什么JS会有原型的概念”的疑惑...
    99+
    2024-04-02
  • JavaScript为什么没有类的概念?
    JavaScript是一种面向对象的编程语言,但与传统的面向对象语言不同的是,它没有类的概念。这是许多开发人员在学习JavaScript时经常遇到的困惑之一,因为许多其他编程语言如Java、C++、Python等都具有类的概念,而且在这些语...
    99+
    2023-05-14
  • JavaScript 原型概念的介绍
    本篇内容主要讲解“JavaScript 原型概念的介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript 原型概念的介绍”吧!原型是JavaSc...
    99+
    2024-04-02
  • JS 里为什么会有 this
    目录1、需求2、方案3、第一次改进4、加糖5、费解6、存在问题7、对象与函数1、需求 假设我们有一个对象 var person = { name: 'Frank', ...
    99+
    2024-04-02
  • JS中File和Blob的概念是什么
    本文小编为大家详细介绍“JS中File和Blob的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“JS中File和Blob的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学...
    99+
    2024-04-02
  • CSS框模型的概念是什么
    这篇文章主要介绍“CSS框模型的概念是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS框模型的概念是什么”文章能帮助大家解决问题。   元素框的最内部分是...
    99+
    2024-04-02
  • js异步电脑概念是什么
    这篇文章主要介绍“js异步电脑概念是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“js异步电脑概念是什么”文章能帮助大家解决问题。1、如果调用者在函数返回时无法获得预期的结果,但在未来需要通过一...
    99+
    2023-06-30
  • socketpair原理及概念是什么
    socketpair是一种在Unix系统中创建一对相互连接的套接字的方法。它可以在本地主机上创建一对相互连接的套接字,这对套接字可以...
    99+
    2023-09-21
    socketpair
  • Java内存模型的概念是什么
    这篇文章主要介绍了Java内存模型的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java内存模型的概念是什么文章都会有所收获,下面我们一起来看看吧。内存模型,英文名Memory Model,他是一个...
    99+
    2023-06-02
  • PyTorch模型剪枝的概念是什么
    PyTorch模型剪枝是指通过消除神经网络中不必要的参数或神经元,从而减少模型的大小和计算量的过程。剪枝技术可以帮助优化模型,提高推...
    99+
    2024-03-05
    PyTorch
  • Nginx的基本概念和原理是什么
    这篇文章将为大家详细讲解有关Nginx的基本概念和原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Nginx基本概念(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供...
    99+
    2023-06-29
  • linux终端类型xterm的概念是什么
    这篇文章主要讲解了“linux终端类型xterm的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux终端类型xterm的概念是什么”吧!xterm是运行X Windows系统...
    99+
    2023-07-02
  • JavaScript原型链继承的概念以及原理分享
    本篇文章和大家了解一下JavaScript原型链继承的概念以及原理分享。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。一、原型链所谓原型链就是指通过原型链继承,在原型之间建立起来的链式结构被称为原型链。当查找对象的某个属性...
    99+
    2023-06-14
  • 什么是JS原型和原型链
    本篇内容介绍了“什么是JS原型和原型链”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.JS 的发展史要想...
    99+
    2024-04-02
  • Left join的概念与执行原理是什么
    这篇文章给大家介绍Left join的概念与执行原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。join 是 SQL查询中很常见的一种操作,具体来讲有join,left joi...
    99+
    2024-04-02
  • 数据库关系模型的概念是什么
    数据库关系模型是一种用于描述和组织数据库中数据的概念模型。它基于数学关系理论,主要用于定义数据之间的逻辑关系,以及数据的组织和操作方...
    99+
    2023-10-10
    数据库
  • mysql.sock的概念是什么
    这篇文章主要讲解了“mysql.sock的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql.sock的概念是什么”吧! ...
    99+
    2024-04-02
  • dedecms的概念是什么
    本篇内容主要讲解“dedecms的概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“dedecms的概念是什么”吧! dede...
    99+
    2023-02-17
    dedecms
  • wlan的概念是什么
    本篇内容介绍了“wlan的概念是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!wlan是什么意思啊:答:wlan的意思是应用“无线通信技...
    99+
    2023-07-02
  • ttylinux的概念是什么
    ttylinux是一个轻量级的Linux发行版,旨在提供一个最小化、高度可定制的操作系统。它是基于BusyBox工具集和Tiny C...
    99+
    2023-10-23
    ttylinux
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作