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 相关文章推荐
JQuery的ajax获取数据后的处理总结(html,xml,json)
Jul 14 Javascript
jQuery+ajax实现顶一下,踩一下效果
Jul 17 Javascript
js正则匹配出所有图片及图片地址src的方法
Jun 08 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
Aug 17 Javascript
js生成word中图片处理方法
Jan 06 Javascript
vue之浏览器存储方法封装实例
Mar 15 Javascript
webpack 静态资源集中输出的方法示例
Nov 09 Javascript
策略模式实现 Vue 动态表单验证的方法
Sep 16 Javascript
JS实现水平移动与垂直移动动画
Dec 19 Javascript
Vue+abp微信扫码登录的实现代码示例
Jan 06 Javascript
一道JS算法面试题——冒泡、选择排序
Apr 21 Javascript
80行代码写一个Webpack插件并发布到npm
May 24 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
linux命令之调试工具strace的深入分析
2013/06/03 PHP
PHP分页效率终结版(推荐)
2013/07/01 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
详解JS数值Number类型
2018/02/07 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
python实现周期方波信号频谱图
2018/07/21 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
tornado+celery的简单使用详解
2019/12/21 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
优秀员工自荐信范文
2013/10/05 职场文书
应届生自我鉴定
2013/12/11 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
大学新闻系自荐书
2014/05/31 职场文书
法院授权委托书范文
2014/08/02 职场文书
实现一个简单得数据响应系统
2021/11/11 Javascript
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB