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 判断Flash是否加载完成的代码
Apr 12 Javascript
jquery网页元素拖拽插件效果及实现
Aug 05 Javascript
js动态创建、删除表格示例代码
Aug 07 Javascript
node.js中的emitter.emit方法使用说明
Dec 10 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
Jul 01 Javascript
Node.js如何自动审核团队的代码
Jul 20 Javascript
前端JS面试中常见的算法问题总结
Dec 23 Javascript
js自定义瀑布流布局插件
May 16 Javascript
Node.js如何对SQLite的async/await封装详解
Feb 14 Javascript
初学node.js中实现删除用户路由
May 27 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
May 12 Javascript
详解Vue之计算属性
Jun 20 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下MAIL的另一解决方案
2006/10/09 PHP
自己在做项目过程中学到的PHP知识收集
2012/08/20 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
深入理解JavaScript作用域和作用域链
2011/10/21 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
js实现本地图片文件拖拽效果
2017/07/18 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
vue实现计算器功能
2020/02/22 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
简述Python中的面向对象编程的概念
2015/04/27 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
Python数学形态学实例分析
2019/09/06 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
python实现微信打飞机游戏
2020/03/24 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
python中字符串的编码与解码详析
2020/12/03 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
司机辞职报告范文
2014/01/20 职场文书
《老王》教学反思
2014/02/23 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
2016年“世界气象日”广播稿
2015/12/17 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python