javascript----原型,原型链(什么是原型)

左岸-oopp      2022-02-09     281

关键词:

和“闭包”一样,“原型”这个概念也经常被提起。

其实这个“概念”应该和构造函数,对象放在一起讲,但是由于时间关系,先把这部分抽取出来讲。再讲这个概念时我们先大致了解下JavaScript中的“对象”。

什么是对象?

JavaScript权威指南中给的解释是:对象是一种复合数据类型,它们将多个数据值集中在一个单元中,而且允许使用名字来存取这些值。或者是一个无序的属性集合,每个属性都有自己的名字和值。

什么是原型?

我们创建一个空对象 var a = new Objecg(),这时 new便设置了这个对象的原型。一个对象的原型就是它的构造函数的prototype属性的值。所有的函数都有一个prototype属性,当这个函数被定义的时候,prototype属性自动创建和初始化。一般用”_proto_”表示

什么是原型链?

在解释这个名词时,我们要知道JavaScript中的所有对象都继承自Object类。个人认为这个概念比较难以用语言描述清楚。下面我用一张图来表示:

 

 下面来解释下,b类继承a类,当我们在b构造函数里查找某一属性“f”时,如果b中没有,那么程序会向上查找“a”类的属性,如果还没有依次向上找,直到查找到object。这个过程便构成了原型链。更简单粗暴的图如下:

这边是原型链。

定义:通过自己的原型不断向上查找直到向上的原型为空(object).这个链便是原型链。

 

对javascript的原型,原型链和继承的个人理解

继承是OO语言中一个最为人津津乐道的概念,也是初接触Javascript的初学者难理解的概念=。=继承主要分为两种:一种是接口继承,另一种是实现继承。而在ECMAScript中只支持实现继承,所以我们今天来讨论讨论实现继承。实现继承... 查看详情

问答式理解javascript的原型及其原型链

简言简语1、什么是原型?原型指的是javascript里面对象的prototype属性,称为原型对象,js原生对象都有prototype属性。2、prototype是怎么来的?在我们以函数式声明一个函数时,js引擎会为我们分配prototype这个属性,在js中所有的对象都... 查看详情

javascript中的原型与原型链

  一直对JavaScript的原型与继承不了解,参考《JavaScript权威指南(第六版)》和《JavaScript高级程序设计(第三版)》对这个点的知识做个整理,方便自己记忆。以下内容大部分摘录自这两本书每一个JavaScript对象都有与之相关的原型... 查看详情

原型和原型链—javascript面向对象高级

原型 1.原型有什么用:js是用原型来实现继承 2.原型是:每一个对象都有其原型对象__proto__,这个原型对象指向构造它的构造函数的原型属性prototype. ##一、函数和对象的关系## 1.函数是对象的一种,instanceof可以判断... 查看详情

javascript中原型以及原型链(代码片段)

js中原型以及原型链什么是原型对象每个函数身上都有一个原型,我们称之为原型对象函数的prototype属性指向原型对象,原型对象上的constructor指回构造函数废话少说,直接看代码functionPerson()this.uname='张三',th... 查看详情

javascript原型链

JavaScript继承是采用原型链进行继承,functionBox(){}functionDesk(){}Desk.prototype=newBox()//通过原型链继承vardesk=newDesk(); 查看详情

javascript的原型原型链原型链继承

原型 在javascript中,原型分有两种:显示原型(prototype)和隐式原型(__proto__)。__proto__(隐式原型)    JavaScript中任意对象都有一个内置属性[[prototype]],在ES5之前没有标准的方法访问这个内置属性,但是大多... 查看详情

javascript原型链

 原型链:实例对象与原型之间的连接,叫做原型链原型链的最外层:Object.prototypefunctionAaa(){//this.num=20;}//Aaa.prototype.num=10;Object.prototype.num=30;vara1=newAaa();alert(a1.num);所以找属性的时候,其实是一级一级找,先实例本身下,然后就是... 查看详情

javascript的原型与继承

首先,什么是原型:JavaScript里所有函数,变量方法都是对象,而对象对应的就是原型(prototype).所以以此来看,JS里任何的对象都有一个原型对象,而默认的原型对象就处在原型链的最顶端。现在说到了一个新的概念,什么是原型... 查看详情

javascript扩展原型链浅析

...简单的概念介绍和解析,本文将浅析一些原型链的扩展。javaScript原型和原型链http://lewyon.xyz/prototype.html扩展原型链使用new操作符利用原型是对象的特性,实例化对象的时候,继承多个构造函数的属性和方法兼容性:支持目前 查看详情

javascript里的原型链

...prototype)中,prototype的值是一个Object类型数据(对象)。JavaScript的数据对象有哪些 查看详情

javascript原型和原型链

前言在了解原型和原型链之前,我们先了解一部分概念,constructor,prototype,proto。constructor在之前判断数据类型的文章:javaScript常见数据类型检查校验有提到过关于构造函数的属性constructorconstructor的是返回创建实例对象的 查看详情

《javascript闯关记》之原型及原型链

原型链是一种机制,指的是JavaScript每个对象都有一个内置的__proto__属性指向创建它的构造函数的prototype(原型)属性。原型链的作用是为了实现对象的继承,要理解原型链,需要先从函数对象、constructor、new、prototype、__proto__这... 查看详情

javascript之继承(原型链)

JavaScript之继承(原型链)  我们知道继承是oo语言中不可缺少的一部分,对于JavaScript也是如此。一般的继承有两种方式:其一,接口继承,只继承方法的签名;其二,实现继承,继承实际的方法。JavaScript不支持签名,因此只... 查看详情

浅谈javascript的原型及原型链

 浅谈javascript的原型及原型链 这里,我们列出原型的几个概念,如下:prototype属性[[prototype]]__proto__prototype属性只要创建了一个函数,就会为该函数创建一个prototype属性,指向该函数的原型对象。实例对象是不会拥有该属... 查看详情

javascript原型原型链神图

理解下面的神图,理解js原型、原型链1、每个对象都有自己的原型对象,每个对象都有一个prototype属性,该属性是一个指针,指向该对象的原型对象,原型对象中存放了一堆特定类型的实例所共享的属性和方法,原型对象也有自... 查看详情

javascript原型链

 注意:1.参考:小角度看JS原型链。2.f.prototype.constructor属性并不可靠。     查看详情

javascript原型与原型链

...例与原型原型的原型原型链阐述【prototype属性】:在JavaScript中,每个对象都有一个prototype属性,这个属性指向函数的原型对象。prototype属性在JavaScript中,每个函数都有一个prototype属性࿰ 查看详情