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 相关文章推荐
javascript:;与javascript:void(0)使用介绍
Jun 05 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
Nov 26 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
May 25 Javascript
浅谈javascript中return语句
Jul 15 Javascript
功能强大的Bootstrap组件(结合js)
Aug 03 Javascript
JavaScript实现短暂提示框功能
Apr 04 Javascript
cocos2dx+lua实现橡皮擦功能
Dec 20 Javascript
vue-router源码之history类的浅析
May 21 Javascript
如何在微信小程序中存setStorage
Dec 13 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 Javascript
vue 子组件修改data或调用操作
Aug 07 Javascript
Webpack5正式发布,有哪些新特性
Oct 12 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过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
php实现简易计算器
2020/08/28 PHP
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
解决pycharm界面不能显示中文的问题
2018/05/23 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
如何利用cmp命令比较文件
2016/04/11 面试题
本科生详细的自我评价
2013/09/19 职场文书
公司委托书范本
2014/04/04 职场文书
10的分与合教学反思
2014/04/30 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
高中班主任心得体会
2016/01/07 职场文书
自荐信范文
2019/05/20 职场文书
frg-100简单操作(设置)说明
2022/04/05 无线电