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 相关文章推荐
jQuery下通过$.browser来判断浏览器.
Apr 05 Javascript
jQuery+PHP打造滑动开关效果
Dec 16 Javascript
浅谈JavaScript中指针和地址
Jul 26 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
Mar 28 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
May 24 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
May 25 Javascript
微信JS SDK接入的几点注意事项(必看篇)
Jun 23 Javascript
Vue组件实例间的直接访问实现代码
Aug 20 Javascript
django使用channels2.x实现实时通讯
Nov 28 Javascript
用jQuery实现抽奖程序
Apr 12 jQuery
Vue 解决通过this.$refs来获取DOM或者组件报错问题
Jul 28 Javascript
vue组件入门知识全梳理
Sep 21 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 SEO优化之URL优化方法
2011/04/21 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
更改localhost为其他名字的方法
2014/02/10 PHP
详解 PHP加密解密字符串函数附源码下载
2015/12/18 PHP
PHP中常用的数组操作方法笔记整理
2016/05/16 PHP
javascript json2 使用方法
2010/03/16 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
ECMAScript6中Set/WeakSet详解
2015/06/12 Javascript
js实现数组转换成json
2015/06/26 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
JS实现网页每隔3秒弹出一次对话框的方法
2015/11/09 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
2020/02/14 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
js实现简单扫雷
2020/11/27 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
Django中reverse反转并且传递参数的方法
2019/08/06 Python
python flask搭建web应用教程
2019/11/19 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
高中同学聚会邀请函
2014/01/11 职场文书
大型晚会策划方案
2014/02/06 职场文书
先进事迹演讲稿
2014/09/01 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
Nginx快速入门教程
2021/03/31 Servers
利用Python判断你的密码难度等级
2021/06/02 Python
一文搞懂Redis中String数据类型
2022/04/03 Redis