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 版元素拖拽原型代码
Apr 25 Javascript
javascript常用方法汇总
Dec 02 Javascript
express的中间件cookieParser详解
Dec 04 Javascript
简介JavaScript中的sub()方法的使用
Jun 08 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
Jun 19 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
Aug 10 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
Aug 02 Javascript
微信小程序 下拉列表的实现实例代码
Mar 08 Javascript
JS使用正则表达式验证身份证号码
Jun 23 Javascript
javascript实现鼠标点击生成文字特效
Dec 24 Javascript
js实现3D旋转相册
Aug 02 Javascript
JavaScript实现手风琴效果
Feb 18 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如何使用Memcached
2016/04/05 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
2019/10/16 PHP
javascript的函数
2007/01/31 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
vue实现登陆登出的实现示例
2017/09/15 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
微信小程序实现canvas分享朋友圈海报
2020/06/21 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
2018/01/11 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
python实现复制文件到指定目录
2019/10/16 Python
python画图常规设置方式
2020/03/05 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
python3.4中清屏的处理方法
2020/07/06 Python
Python实现弹球小游戏
2020/08/01 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
汇集了世界上最好的天然和有机美容产品:LoveLula
2018/02/05 全球购物
小学重阳节活动总结
2015/03/24 职场文书
拉贝日记观后感
2015/06/05 职场文书
外出学习心得体会范文
2016/01/18 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL