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 相关文章推荐
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
Jun 18 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
Nov 19 Javascript
JS控件的生命周期介绍
Oct 22 Javascript
jQuery中 delegate使用的问题
Jul 03 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
Sep 09 Javascript
开启Javascript中apply、call、bind的用法之旅模式
Oct 28 Javascript
JavaScript“尽快失败”的原则实例详解
Oct 08 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
Oct 29 Javascript
微信小程序 设置启动页面的两种方法
Mar 09 Javascript
vue中路由验证和相应拦截的使用详解
Dec 13 Javascript
简单的Vue异步组件实例Demo
Dec 27 Javascript
vue中rem的配置的方法示例
Aug 30 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 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
Jquery对数组的操作技巧整理
2014/03/25 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
vue mounted组件的使用
2018/06/18 Javascript
vue-router的HTML5 History 模式设置
2018/09/08 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
在vue项目中使用sass语法问题
2019/07/18 Javascript
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python中常见的异常总结
2018/02/20 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
Tensorflow 多线程设置方式
2020/02/06 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
详解Python IO编程
2020/07/24 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
探索HTML5本地存储功能运用技巧
2016/03/02 HTML / CSS
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
英文求职信写作小建议
2014/02/16 职场文书
应聘英语教师求职信
2014/04/24 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
批评与自我批评范文
2014/10/15 职场文书
致青春观后感
2015/06/09 职场文书
北京爱情故事观后感
2015/06/12 职场文书
Android studio 简单计算器的编写
2022/05/20 Java/Android
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server