JavaScript对象原型链原理解析


Posted in Javascript onJanuary 22, 2020

这篇文章主要介绍了JavaScript对象原型链原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一个js对象,除了自己设置的属性外,还会自动生成proto、class、extensible属性,其中,proto属性指向对象的原型。

对象的属性也有writable、enumerable、configurable、value和get/set的配置方法。

JavaScript对象原型链原理解析

对象的创建方式有三种:

一、使用字面量直接创建。

二、基于原型链创建。

JavaScript对象原型链原理解析

分析上图,要点如下:

1.可以new运算符新建对象,foo为自定义函数,即是对象。

2.可以设置foo.prototype上的属性。

3.变量z在原型链上,为foo.prototype的属性,并非obj的自有属性。

4.原型链为obj->foo.prototype->Object.prototype->null。

JavaScript对象原型链原理解析

分析上图,要点如下:

1.若定义与原型链上同名的变量,则不会覆盖原型链上的变量,而是在对象本身新增副本。

2.delete运算符不会影响原型链上已有的变量,只会删除对象自身的属性。

三、使用Object.create创建。

JavaScript对象原型链原理解析

分析上图,要点如下:

1.Object.create是基于传入的参数产生新的对象,并且入参会成为其原型链上的一部分。

2.Object.create(null)创建的对象直接指向null。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JScript 脚本实现文件下载 一般用于下载木马
Oct 29 Javascript
JavaScript String 对象常用方法详解
May 13 Javascript
浅析JavaScript中命名空间namespace模式
Jun 22 Javascript
jQuery Mobile和HTML5开发App推广注册页
Nov 07 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
Jan 04 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
Apr 12 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
Jan 02 Javascript
原生JS实现$.param() 函数的方法
Aug 10 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
Mar 13 Javascript
详解微信小程序调用支付接口支付
Apr 28 Javascript
vue路由守卫+登录态管理实例分析
May 21 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
Dec 09 Javascript
Node.js学习之内置模块fs用法示例
Jan 22 #Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
Jan 22 #Javascript
ES6学习笔记之let与const用法实例分析
Jan 22 #Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
Jan 22 #Javascript
Vue设置长时间未操作登录自动到期返回登录页
Jan 22 #Javascript
JavaScript设计模型Iterator实例解析
Jan 22 #Javascript
Vue开发环境跨域访问问题
Jan 22 #Javascript
You might like
PHP分页效率终结版(推荐)
2013/07/01 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
jQuery 1.0.2
2006/10/11 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
javascript中indexOf技术详解
2015/05/07 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
Javascript简写条件语句(推荐)
2016/06/12 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
Python单例模式实例详解
2017/03/01 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
python 日志模块 日志等级设置失效的解决方案
2020/05/26 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
kmart凯马特官网:美国最大的打折零售商和全球最大的批发商之一
2016/11/17 全球购物
Zavvi荷兰:英国大型音像制品和图书游戏零售商
2018/03/22 全球购物
全球最大的游戏市场:G2A
2018/07/05 全球购物
社区巾帼文明岗事迹材料
2014/06/03 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
安全承诺书格式范本
2015/04/28 职场文书
2016年寒假生活小结
2015/10/10 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript