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 相关文章推荐
form中限制文本字节数js代码
Jun 10 Javascript
ExtJS的拖拽效果示例
Dec 09 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
Sep 04 Javascript
全面解析Bootstrap表单使用方法(表单样式)
Nov 24 Javascript
javascript高级编程之函数表达式 递归和闭包函数
Nov 29 Javascript
微信小程序 SocketIO 实例讲解
Oct 13 Javascript
webuploader模态框ueditor显示问题解决方法
Dec 27 Javascript
ajax异步请求详解
Jan 06 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
Apr 11 Javascript
JavaScript设计模式之代理模式详解
Jun 09 Javascript
详解vue-flickity的fullScreen功能实现
Apr 07 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/06/13 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
python解析xml文件实例分享
2013/12/04 Python
Python sys.argv用法实例
2015/05/28 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
python try except 捕获所有异常的实例
2018/10/18 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
python 基于DDT实现数据驱动测试
2021/02/18 Python
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
自我鉴定书范文
2013/10/02 职场文书
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
合伙经营协议书
2014/04/18 职场文书
师德师风个人反思
2014/04/28 职场文书
高三复习计划
2015/01/19 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS