IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 2021-09-18 -> 正文阅读

[JavaScript知识库]2021-09-18

原型

在Js中每个对象都有一个与之相关联的对象,叫原型对象。每一次获取对象属性都是查询的过程,当对象的自有属性好啊不到时就会去找它的原型对象。
在JS函数也是一个对象,每个函数都有prototype属性(只有函数有prototype属性),这个是一个指针,也是一个对象,二者对象的用途是包含可以由特定类型的所有实例共享的属性和方法。
每个函数都有prototype属性,指向函数的原型对象。他们的实例对象可以共享这个属性,实例和原型对象关联起来所用的属性叫做_proto_(([prototype])),它也是一个指针,指向构造函数的原型对象,就是我们能够共享信息的那个对象。

prototype

对象均有一个prototype内置属性,该属性非空。默认是null。通过ES5语法Object.create()可以继承一个对象(通过原型继承),普通的prototype最终都会指向最终的Object.prototype对象

属性设置和屏蔽

给对象添加属性经过:
myObject.foo=“bar”

  • 如果myObject对象包含名为foo的普通数据访问属性,这条赋值语句只会修改已有的属性
  • 如果foo不直接存在于myObject中,prototype链会被遍历,找不到foo,foo会直接添加到myObject
  • 如果foo出现在myObject在原型链上层,那么新添加的foo属性会屏蔽掉上层所有的foo属性;如果在prototype链上层存在foo并且它是一个setter,那么foo不会添加到myObject中。
  • 注意myObject++等操作,++相当于myObject=myObject+1,进行了一次复制操作,所以会缠上隐式屏蔽

“类”函数

  • JavaScript才是真正的面向对象语言,不通过类,直接创建对象的语言。JavaScript是通过函数在模仿类的特性,因为函数会拥有一种prototype的公有且不可枚举的属性,它会指向这个函数的原型,通过.prototype来访问。
  • 通过new创建的对象最终会被[[prototype]]链接到原函数.prototype上
  • 类可以被复制(实例化多次),一个类就意味着把类的行为复制到物理对象中,对于每一个实例都会重复这个过程。但是在JavaScript并没有类似的复制机制。通过prototype关联同一个对象,默认情况不会复制,而是互相关联。new其实就是生成一个新对象,这个对象的内部链接[[prototype]]关联着原函数的prototype对象。最后我们得到了两个对象,它们只是相互关联。这就叫作原型继承。
  • Js的原型继承会在两个对象之间创建关联,这样一个对象可以通过委托另一个对象的属性和函数。
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 07:54:08  更:2021-09-19 07:54:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 1:44:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码