原型和原型链

20 篇文章 1 订阅
订阅专栏

一、构造函数和原型对象

1、构造函数:

(1)作用:用于创建对象,初始化对象的属性

注意:通常把用构造函数创建对象的过程称为类的实例化,对象就是类的实例

2、构造函数的成员或类的成员

(1)什么是成员?类的成员包括属性、方法(行为),通常将属性称为成员变量,把方法(行为)称为成员方法(成员函数)

(2)成员变量又称为实例变量:用类或构造函数创建的对象都有相同的属性和方法

(3)静态成员:通过构造函数名或类名直接访问的成员。不属于任何对象,为类的所有对象(实例共享的)

静态成员也称为类成员

(4)构造方法和类的区别:

a、构造函数中定义的方法,本质是属性,需要占用存储空间

b、在类中定义的方法,不是属性,不需要占用存储空间。即在创建类的对象的过程中,只给对象的属性分配存储空间,对象的方法不占空间,因此节省了内存空间。

3、原型对象:

(1)每个构造函数都存在一个原型对象,可以通过构造函数的prototype属性访问

a、构造函数的原型对象:是object类型,通过prototype属性可以访问到

b、作用:通过原型对象可以给构造函数增加新的功能,这些新的功能可以共享给用构造函数创建的所有对象

(2)对象的原型对象:js中每个对象都有一个原型对象,通过 proto 属性来获取

(3)实例对象与原型对象的关系

 

(4)对象的构造函数:通过对象的原型对象来获取。在对象的原型对象有constructor属性,代表了对象的构造函数

示例:用赋值方式修改原型对象为新的对象,就无法访问构造函数。

(5)构造函数、原型对象和实例对象之间的关系

(6)原型链:

a、通过构造函数的prototype属性找到构造函数的原型对象,通过构造函数的原型对象的constructor找到构造函数

b、通过构造函数创建实例对象,然后通过实例对象的 _proto _属性可以找到对象的原型对象,也可以通过对象的原型对象的constructor找到构造函数

把上面两种找原型对象和构造函数的过程称为原型链

(7)原型对象的原型对象:原型对象也是一个对象,那么它也有原型对象

function Person(){
    this.sayHello = function(){
        console.log("Hello Woniu!");
    }
}
//输出Person的原型对象
console.log('Person的原型对象:',Person.prototype) //constructor ƒ Person()
//输出Person的原型对象的原型对象
console.log('Person的原型对象的原型对象:',Person.prototype.__proto__)

(8)原型链结构特点

a、 每个构造函数都有一个prototype属性指向原型对象。

b、原型对象通过constructor属性指向构造函数。

c、通过实例对象的 _ _ proto _ _ 属性可以访问原型对象。

d、Object的原型对象的 _ _ proto _ _ 属性为null。

(9)JavaScript中成员(属性)的查找机制

a、首先查找对象中有没有成员(属性)

b、如果没有找到,就继续查找原型对象的原型对象

c、如果直到最后都没有找到,则返回undefined。

二、this的指向问题

1、在构造函数内部this指向新创建的对象

2、直接通过函数名调用函数时,this指向的是全局对象window。

3、如果将函数作为对象的方法调用,this将会指向该对象

三、javascript中的错误处理

1、使用try—catch进行处理

执行过程:

(1)若try{}中的代码出现了错误,js会根据错误的类型,生成错误对象,然后将该错误对象抛出去

(2)catch会接收try抛出的错误对象,然后对象错误进行处理

(3)若try{}中的代码出现了错误,try{}中余下的代码就不执行,转到catch下执行

(4)最后执行try—catch结构之外的代码

 2、常见的错误类型

 (1)Error:表示普通错误,其他的错误对象都是从该对象派生而来

 (2)RangeError:数值超出有效范围

 (3)ReferenceError:引用一个不存在的变量

 (4)SyntaxError:语法错误

 (5)TypeError:类型错误

3、throw:是JavaScript的关键字,用于在try{}中抛出错误对象

四、查找算法

1、顺序查找:按数组或集合中元素的存放顺序依次操作(按顺序依次比较每个元素)

2、折半查找(二分法查找)

(1)前提条件:被查找的集合或数组必须是有序的

(2)每次查找时先和被查找区间的中间元素进行比较,若大于中间元素,则继续在被查找区间的右边的区间中找,若小于中间元素

则在被查找区间的左边的区间中查找,如此循环直到查找结束。

JS中的原型原型链(图解)
qq_36996271的博客
09-09 5万+
JS中的原型原型链原型的时候,我们应该先要记住以下几个要点,这几个要点是理解原型的关键: 1、所有的引用类型(数组、函数、对象)可以自由扩展属性(除null以外)。 2、所有的引用类型都有一个’_ _ proto_ _’属性(也叫隐式原型,它是一个普通的对象)。 3、所有的函数都有一个’prototype’属性(这也叫显式原型,它也是一个普通的对象)。 ...
深入理解JavaScript系列(6) 强大的原型原型链
12-09
理解JavaScript原型原型链对于编写高效的代码至关重要,因为它们是实现继承和共享行为的基础。在JavaScript中,可以利用原型链来模拟类继承,尽管这可能比传统的类继承模型更复杂,但它提供了更大的灵活性和创新...
【颠覆旧知识】JS的原型链搜索原则;
从今年开始写写博客~~
02-25 796
在当前对象未找到该属性,就一直向上查找,找到就停止并返回该数据,如果直到object的原型也没找到,就返回undefined ,如果是调用方法就报错, 该 xxxx 不是一个函数。直到某个的原型的值为null都没找到该属性的话则终止,然后返回 undefined ,如果是调用方法就会导致报错, xx is not a function。没想到是在搜索过程中遇到原型的值为null时,就停止,并不是就会一直查找到Object的原型才停止;在当前对象未找到该属性,就沿着原型链向上查找,找到就停止并返回该属性,
原型原型链及其练习题
qq_48973607的博客
11-15 1281
原型原型链的练习题带你玩转原型链
JS:原型原型链
elevenhope的博客
02-11 4628
一、原型 原型:每当定义一个对象(函数也是对象)时,就会生成一个__proto__属性,被称为隐式原型;这个__proto__属性指向的是这个对象的构造函数的prototype,被称为显式原型。每一个对象都会从原型中“继承”属性。 首先看一个例子,创建一个Student类,并创建类的实例对象student: class Student{ constructor(name, score) { this.name = name; this.score = score;
原型原型链的理解
Senora的博客
06-23 4195
原型原型链的理解
原型原型链的理解(有图清晰明了)
热门推荐
qq_64180670的博客
11-16 2万+
万物皆对象,原型原型链之间的关系由图清晰可见
前端面试题JS原型原型链
weixin_74883980的博客
09-05 758
JavaScript 通过构造函数生成新对象,因此构造函数可以视为对象的模板。实例对象的属性和方法,可以定义在构造函数内部。prototype对象(原型对象)有一个constructor属性,默认指向prototype对象所在的构造函数。由于constructor属性定义在prototype对象上面,意味着可以被所有实例对象继承。__ proto __ 属性是每一个对象以及函数都隐含的一个属性。__ proto __ 属性指向的是创建他的构造函数的prototype。原型链就是通过这个属性构件的。
深入理解javascript原型原型链
猫老板的豆
03-11 1648
prototype(原型)下面的就是原型(也叫显式原型),它是一个对象,我们也称它为原型对象。Person.prototype.say = function () { // 通过原型添加方法// 原型对象say: ƒ(), // 原型上共享的方法,不会反复开辟存储空间,减少内存浪费。上面这个对象,就是大家常说的原型对象。
JS原型原型链原理与用法实例详解
11-21
本文实例讲述了JS原型原型链原理与用法。分享给大家供大家参考,具体如下: Javascript语言的继承机制一直很难被人理解。 它没有”子类”和”父类”的概念,也没有”类”(class)和”实例”(instance)的区分,...
图解JS原型原型链实现原理
10-14
JavaScript中的原型原型链是其继承机制的核心,理解这两者对于深入学习JS至关重要。本文将通过详细的图解和实例代码,帮助你理解这两个概念及其实现原理。 首先,我们需要明白JavaScript的发展背景。JavaScript...
强大的原型原型链
07-24
### 强大的原型原型链 #### 前言 JavaScript 的继承机制与传统面向对象语言(如 Java、C#)中的类继承不同,它采用了基于原型(Prototype-based)的继承模型。这种模型使得 JavaScript 在处理对象之间的继承关系...
前端 js 处理一个数组 展示成层级下拉样式
lzfengquan的博客
10-17 375
前端开发中,不管是什么时候都会遇到select 下拉框的使用,一般情况下,数据处理后端都会处理好。前端一般使用相应技术栈所推荐的公共组件就可以了。前端处理的前提是要确定那个是父级元素,那个是子级元素,这样才能更好的处理数据。这个时候前端要写个方法去处理这个数组了。这个数组后端是会给的。
nodejs基础(2)
weixin_46253800的博客
10-21 208
【代码】nodejs基础(2)
【开源免费】基于SpringBoot+Vue.JS在线视频教育平台(JAVA毕业设计)
最新发布
customer08的博客
10-21 1108
在线视频教育平台发展迅速,已经成为全球教育领域的重要组成部分。这些平台通过提供丰富的课程资源、灵活的学习时间和个性化的学习体验,吸引了大量用户
JavaScript 中的定时器与动画基础
jht_520的博客
10-20 226
例如,可以使用 setInterval 来每隔一定的时间改变一个元素的位置,从而实现移动效果。它接受两个参数,第一个参数是要执行的函数,第二个参数是时间间隔的毫秒数。它也接受两个参数,第一个参数是要执行的函数,第二个参数是延迟的毫秒数。setInterval 和 setTimeout 都是 JavaScript 中的定时器函数,用于在一定的时间间隔后执行函数。上述示例代码会先延迟两秒后开始淡入动画,然后再延迟两秒后开始淡出动画,从而实现一个简单的淡入淡出动画效果。
js原型原型链图解
03-16
JavaScript中的原型原型链是理解JavaScript面向对象编程的重要概念之一。 在JavaScript中,每个对象都有一个原型(prototype),原型是一个对象,它包含了共享的属性和方法。当我们访问一个对象的属性或方法时,...
写文章

热门文章

  • 对象的基本概念 6831
  • Node的http模块 4011
  • 如何统计字符串中出现最多的字符和次数 2231
  • 函数练习:输入一个4位数根据加密规则输出密文 1836
  • Express操作MongoDB 1053

分类专栏

  • 数据库 7篇
  • Node.js 5篇
  • 思维导图 3篇
  • JavaScript 20篇
  • HTML与CSS 3篇

大家在看

  • LeetCode--验证二叉搜索树--深度优先遍历dfs
  • Transformer 从零解读详细教程 615
  • 配置双向NAT,实现Internet中的主机访问内网服务器
  • VNC安装步骤【#1024程序员节 | 征文#】
  • 介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。(AI)

最新文章

  • 文件的上传和下载
  • Mongoose应用和文件上传
  • Express操作MongoDB
2022年39篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地狱三头猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家人物玻璃钢雕塑公司铜仁玻璃钢仿真雕塑辽宁玻璃钢佛像雕塑批发厂玻璃钢桃子雕塑找哪家商丘校园玻璃钢景观雕塑商场美陈方案设计公司苏家屯区玻璃钢花盆厂家直销玻璃钢动物雕塑造型桂林玻璃钢雕塑公司常熟商场户外美陈武汉抽象玻璃钢雕塑销售电话河南佛像玻璃钢雕塑批发制作玻璃钢雕塑商家报价玻璃钢怎么做雕塑潍坊清远玻璃钢切面动物雕塑重庆玻璃钢卡通雕塑厂济南卡通人玻璃钢雕塑摆件合肥校园玻璃钢雕塑生产厂家张掖大型玻璃钢雕塑厂家海南玻璃钢瓜果雕塑阳江动物园玻璃钢雕塑江西景区玻璃钢雕塑生产厂家珠海led发光玻璃钢雕塑厂家玻璃钢卡通雕塑断了怎么处理广州玻璃钢雕塑彩绘国外商场开业美陈方案呈贡加工玻璃钢雕塑特别推荐阜阳欧式玻璃钢雕塑市场河北动物玻璃钢雕塑优势玻璃钢不锈钢卡通雕塑制造香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化