原型链概念论述(一)

2023-05-16

对象中的静态成员和实例成员:

·使用构造函数方法创建对象时,可以给构造函数和创建的实例对象添加属性和方法,这些属性和方法都叫做成员。
·实例成员:在构造函数内部添加给this 的成员,属于实例对象的成员,在创建实例对象后必须由对象调用。
·静态成员:添加给构造函数自身的成员,只能使用构造函数调用,不能使用生成的实例对象调用。

若想两者都可以调用则使用:实例成员的方法将属性或方法添加到函数当中

构造函数浪费空间

构造函数直接定义方法会导致内存浪费的问题,那么我们选择使用在构造函数外重新定义一个公共对象用来封装这些公共的方法,然后在调用时直接使用,尽可能避免内存的浪费........

构造函数、原型对象、实例三者间的关系

构造函数具有一个属性能指向原型对象,三者互换得出构造函数的内容

通过构造函数实例化一个对象利用对象的__proto__属性也能找到原型对象

 

 总结利用原型对象设置方法可以避免内存的浪费,且保证对象的方法不重复

原型链思路总结,就是当我们向上找方法如果找不到就返回未定义,若找到就返回最近一级的方法

原型链获取方法的方法就是根据最近一级的方法是谁就获取哪一谁,如下注释掉函数中的方法就返回原型对象中的方法

 原型链查找机制

每当代码读取某个对象的某个属性时,都会执行一次搜索目标是具有给定名字的属性:
1.搜索首先从对象实例本身开始 
2.如果在实例中找到了具有给定名字的展性,则返回该属性的值 
3.如果没有找到,则继续沿原型链上寻的原型对象,在原型对象中查找具有给定名字的属性

4.如果在原型对象中找到了这个属性,则返回该属性的值,没有找到继续上寻到object对象,找到返回没找到就报错

值类型写入(实例对象.值类型成员= xx):

当实例期望重写原型对象中的某个普通数据成员时实际上会把该成员添加到自己身上-也就是说该行为实际上会屏蔽掉对原型对象成员的访问

就类似利用dom方法去修改一个属性值时,其实并未修改任何值,只是把修改的数据放入行内式中提高样式优先级

内置函数的原型对象不允许更改,只能对原型新增一个原型对象方法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

原型链概念论述(一) 的相关文章

  • 大数据热点分析图源码

    lt style gt body background color 333 map position relative width 746px height 617px margin 30px auto background url ima
  • 关于微信支付和支付宝支付,调试不同的常见问题

    1 首先要知道 xff1a 微信支付 xff0c 电脑端扫描支付 xff0c 手机微信支付 xff0c 用的是一个接口 xff1b 支付宝的即时到账 xff0c 电脑端和手机端的支付 xff0c 使用的是两个不同的接口 xff0c 这点很坑
  • 奔跑的熊大动画效果JS

    利用动画去尝试制作相应的动画效果熊的制作思路在于 xff1a 图片添加了动画效果 xff0c 在时间范围内渐动改变 xff0c 关键帧一直在改变 xff0c 图片被往前拉熊展现奔跑的效果熊奔跑的制作思路 xff1a 基础效果盒子移动到水平居
  • JS中 遍历数组 2022/3/23日志

    lt 遍历数组 xff0c 找出大于20的数组 xff0c 重组新数组 gt lt script gt 创建新数组需要利用 new Array 关键字建立 var array 61 new Array 22 12 64 12 15 122
  • JS·函数

    1 函数语法规则 xff1a 声明部分 function 函数名 xff08 xff09 function为声明函数的关键字 函数体执行代码 xff08 xff09 注意 xff1a 声明函数后需要调用函数否则无效 xff0c 函数不调用自
  • JS中函数与作用域的定义(日志-2022.3.28)

    1 函数中的两种命名方式 xff1a 1 利用函数关键字function自定义函数 xff08 命名函数 xff09 function fu xff08 xff09 fn 2 利用函数表达式 xff08 匿名函数 xff09 var 变量名
  • JS中构造函数

    一 构造函数定义方法 语法规则 xff1a function 构造函数名 xff08 实参 xff09 this 属性名 61 属性值 xff1b this 方法 61 function 实参 普通函数体 xff1b 调用方式 xff1a
  • 构造函数的三种方式以及输出

    构造函数的三种方式以及输出 lt body gt lt 构造函数创建对象 gt lt 该方法一次一次创建多个 gt lt script gt var i 61 0 function Car kg color product skill th
  • JS实现静态计算器(刷新自动更新数值)页面制作与问题总结

    1 JS部分 xff1a var worldTime 61 43 new Date 返回世界时间距现在多久 var nowTime 61 43 new Date time 输出我们定义的时间并且转换为毫秒参与计算 var trueTime
  • 移动端布局基础(html+css+js)

    1 视口 1 布局视口 一般移动设备的浏览器都默认设置了一个布局视口 xff0c 用于解决早期的PC端页面在手机上显示的问题 iOS Android基本都将这个视口分辨率设置为980px xff0c 所以PC上的网页大多都能在手机上呈现 x
  • JS中数组基础对象部分

    1 创建数组的两种方式 1 xff0e 利用数组字面量 var arr 61 1 2 3 console log arr arr1 2 xff0e 利用new Array var arr1 61 new Array 创建了一个空的数组 va
  • 利用indexOf方法去删除重复数组

    利用indexOf方法去删除重复数组 原理 xff1a indexof在数组中去遍历如果有我们需要的元素就会返回元素所在索引号 xff0c 若没有就会返回 1 xff1b 注意在索引时要求调用的参数与数组中的参数应该数据类型的一致 xff0
  • php查询当月sql记录

    以前我在查询数据库今天或昨天 近7天 近30天 本月 上一月数据都是直接通过php来判断了 xff0c 这样感觉是多一个环节了 xff0c 下面我介绍一篇直接使用sql统计出当天 昨天 近7天 近30天 本月 上一月数据语句 现在分享给各位
  • html+css弹性布局

    1 布局原理 flex是flexible Box的缩写 xff0c 意为 34 弹性布局 34 xff0c 用来为盒状模型提供最大的灵活性 xff0c 任何一个容器都可以指定为flex布局 当我们为父盒子设为flex布局以后 xff0c 子
  • 弹性布局中flex子项属性

    3 flex布局子项常见属性 1 flex子项目占的份数 A flex属性 xff1a 定义子项目分配剩余空间 xff0c 用flex来表示占多少份数 语法 xff1a flex 数值 以百分比样式输出 xff08 默认为0 xff09 x
  • 事件三要素~JS

    1 事件源 xff1a 哪一个标签需要发生动态改变 xff08 制作时需要获取元素改变元素和被改变元素 xff09 xff1b 2 事件类型 xff1a 指对标签执行的一系列静态页面的操作行为 xff1a 如 xff1a 点击 悬浮 触发未
  • 初识dom简单交互效果案例制作~JS

    一 点击不同的button实现页面img的改变 代码如下 xff1a 注意通过函数动态改变的img路径在编写的时候一定要是相对路径 lt body gt lt style gt div height 250px width 333px ba
  • dom简单交互效果案例制作~JS(二)

    1 排他操作 1 总结 xff1a 需要不停的去点击这个按钮 xff0c 每按下一个上一次点击的按钮背景就必须恢复正常 xff0c 用for循环每一次在点击之前所有的背景颜色恢复正常 xff0c 然后在去执行改色操作 lt body gt
  • Tab栏选项卡JS交互效果~JS

    tab栏选项卡 tab栏选项卡 分析 xff1a 分两个部分上面是选项卡下面是点击选项卡后显示出来的一部分 xff1b h5c3制作时将下面部分的样式利用display xff1a none xff1b 全部隐藏起来 JS中对于选项卡制作依
  • 节点操作简单概述~JS

    1 概述 一般 xff0c 节点至少拥有nodeType xff08 节点类型 nodeName 节点名称 xff09 和nodeValue 节点值 xff09 这三个基本属性 元素节点nodeType为1 属性节点nodeType为2 文

随机推荐

  • 中国经典文学作品~JS制作

    总结 xff1a 点击事件源调用函数 xff0c 弹出输入框存入数据 xff0c 将数据保存到变量里面在点击添加的时候将数据存入数组 xff0c 然后合并数组 xff0c 通过遍历的方式存入到新的变量当中输出 在删除按钮的制作就是 通过输入
  • Ubuntu中shell命令(一)

    1 ls命令 xff1a 显示指定工作目录下之内容 A xff1a ls xff1a 列出根目录 下的所有目录 B xff1a ls ltr s 列出目前工作目录下所有名称是 s 开头的文件 xff0c 越新的排越后面 C xff1a ls
  • Ubuntu中shell命令(二)

    1 sudo命令 xff1a 切换用户身份命令 我们通过切换命令去获取用户权限 xff0c 寻求root用户 xff0c 获取超级权限 xff0c 经由 sudo 所执行的指令就好像是 root 亲自执行 2 su命令 xff1a Linu
  • php查询数据库输出近7天,每一天的数据

    for i 61 0 i lt 61 6 i 43 43 user count i 61 intval User gt where 39 DATEDIFF CURDATE FROM UNIXTIME 96 regtime 96 34 Y m
  • Ubuntu中shell命令(三)

    1 grep命令 xff1a 查找内容命令 r 或 recursive 此参数的效果和指定 34 d recurse 34 参数相同 n 或 line number 在显示符合样式的那一行之前 xff0c 标示出该行的列数编号 i 或 ig
  • ubuntu软件安装报错

    出现E Unable to locate package get xff08 资源暂时不可用 xff0c 无法锁定管理目录 xff0c 是否有其他进程在占用 xff09 现获取root权限分开使用如下两条指令强制释放锁 1 sudo rm
  • Ubuntu安装软件

    1 利用APT工具安装软件 使用apt包管理工具 安装报E Unable to locate package get错误先root一下 使用语法 xff1a sudo apt get install 软件名 xff1b 2 deb软件包安装
  • JS中~location对象+navigator对象用法

    url xff08 统一资源定位符 xff09 包含的信息能指出文件的位置以及浏览器的处理方式 protocol host port path t query fragment http www itcast cn index htm1 n
  • JS中~偏移量设定方式与案例分析

    1 history对象方法 分析 xff1a 实现从主页跳转过来以后就会自动生成一个p标签并改写内容 xff0c 利用location对象修改herf方法值 xff0c 实现不用标签跳转 问题 xff1a 对于添加创建的元素使用方法遗忘 x
  • offsetWidth、clientWidth、scrollWidth三者的区别

    client可视区 client翻译过来就是客户端 xff0c 我们使用client系列的相关属性来获取元素可视区的相关信息 通过client系列的相关属性可以动态的得到该元素的边框大小 元素大小等 offsetWidth or offse
  • JS制作~淘宝固定侧边栏

    淘宝固定侧边栏 lt DOCTYPE html gt lt html lang 61 34 en 34 gt lt head gt lt meta charset 61 34 UTF 8 34 gt lt meta http equiv 6
  • JS中~ flexible.js分析

    flexible js分析 1 document documentElement获取根标签 2 DOMContentLoaded 事件是文档加载完成时触发的事件 xff0c 文档加载完成是指DOM结构 xff08 所有文档标签 xff09
  • ubuntu磁盘挂载解决方法(2022/5/9)

    挂载磁盘 xff08 使用root权限去使用 xff09 注意 xff1a 1 建议全程以超级用户权限去调用 2 语法结构上的问题 xff08 mount 目标文件所在位置 43 一个空格 43 保存路径 xff09 3 挂载之前需要清空新
  • 缓动动画效果

    mouseenter 鼠标事件 当鼠标移动到元素上时就会触发mouseenter事件类似 mouseover xff0c 它们两者之间的差别是 mouseover鼠标经过自身盒子会触发 xff0c 经过子盒子还会触发 mouseenter
  • thinkphp根据时间戳查询时间范围内的记录

    这是获取当月月初和月末的时间戳 beginThismonth 61 mktime 0 0 0 date 39 m 39 1 date 39 Y 39 endThismonth 61 mktime 23 59 59 date 39 m 39
  • MySQL语句汇总(节选)

    create语句 xff0c 创建库 表 create database 数据库名 xff1b 创建数据库 create table 表名 xff08 列名1 数据类型 约束 xff0c 列名2 数据类型 约束 xff0c 列名3 数据类型
  • JS中~Dom和Bom方法汇总

    var newNode 61 document createElement 34 div 34 创建一个元素节点 var textNode 61 document createTextNode 34 hello world 34 创建一个文
  • ubuntu中文件夹的解压和创建用户组命令

    二 Windows下7ZIP软件的安装 因为Linux下很多文件是 bz2 xff0c gz结尾的压缩文件 xff0c 因此需要在windows下安装7ZIP软件 二 gzip压缩工具 gzip工具负责压缩和解压缩 gz格式的压缩包 gzi
  • JS高级部分对于数据、内存的解析

    内存中堆和栈道区别 xff1a 堆是在内存中开辟的一块较大容量的区域 xff0c 主要用来存放基本值类型的我们可以通过获取地址的方式去获得堆中的基本值类型 xff0c 且堆里面的内容一经存在便不会删除 xff0c 这也就是我们对一个变量实现
  • 原型链概念论述(一)

    对象中的静态成员和实例成员 xff1a 使用构造函数方法创建对象时 xff0c 可以给构造函数和创建的实例对象添加属性和方法 xff0c 这些属性和方法都叫做成员 实例成员 在构造函数内部添加给this 的成员 xff0c 属于实例对象的成