JavaScript对象原型链原理详解


Posted in Javascript onFebruary 05, 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 相关文章推荐
JavaScript是否可实现多线程  深入理解JavaScript定时机制
Dec 22 Javascript
jquery自定义滚动条插件示例分享
Feb 21 Javascript
判断及设置浏览器全屏模式
Apr 20 Javascript
js检验密码强度(低中高)附图
Jun 05 Javascript
JavaScript中getUTCMinutes()方法的使用详解
Jun 10 Javascript
深入浅析JS Function()构造函数
Aug 22 Javascript
值得分享的Bootstrap Table使用教程
Nov 23 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
Dec 07 Javascript
浅谈Node异步编程的机制
Oct 18 Javascript
KOA+egg.js集成kafka消息队列的示例
Nov 09 Javascript
详解微信小程序调用支付接口支付
Apr 28 Javascript
微信小程序实现轨迹回放的示例代码
Dec 13 Javascript
基于Vue的侧边目录组件的实现
Feb 05 #Javascript
Js视频播放器插件Video.js使用方法详解
Feb 04 #Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 #jQuery
JS代码优化的8点建议
Feb 04 #Javascript
9种方法优化jQuery代码详解
Feb 04 #jQuery
JS代码检查工具ESLint介绍与使用方法
Feb 04 #Javascript
使用typescript改造koa开发框架的实现
Feb 04 #Javascript
You might like
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
php函数连续调用实例分析
2015/07/30 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
Python3基础之输入和输出实例分析
2014/08/18 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
深入了解Django View(视图系统)
2019/07/23 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
普通党员整改措施
2014/10/24 职场文书
优秀教育工作者事迹材料
2014/12/24 职场文书
初中家长评语和期望
2014/12/26 职场文书
党风廉正建设责任书
2015/01/29 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis