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 相关文章推荐
PHP 与 js的通信(via ajax,json)
Nov 16 Javascript
js数组方法扩展实现数组统计函数
Apr 09 Javascript
jQuery实现行文字链接提示效果的方法
Mar 10 Javascript
JavaScript蒙板(model)功能的简单实现代码
Aug 04 Javascript
Centos7 中安装 Node.js v4.4.4
Nov 03 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
Oct 26 Javascript
vue.js获取数据库数据实例代码
May 26 Javascript
vuejs手把手教你写一个完整的购物车实例代码
Jul 06 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
Nov 14 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
May 21 Javascript
微信小程序如何访问公众号文章
Jul 08 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
Sep 17 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 程序员的调试技术小结
2009/11/15 PHP
php设计模式之观察者模式的应用详解
2013/05/21 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
php中{}大括号是什么意思
2013/12/01 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
python实现人脸识别代码
2017/11/08 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
Python单元测试简单示例
2018/07/03 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
详解Python3中的 input() 函数
2020/03/18 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
介绍一下Java的事务处理
2012/12/07 面试题
优秀教师获奖感言
2014/01/31 职场文书
《在家里》教后反思
2014/03/01 职场文书
行政内勤岗位职责
2014/04/07 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
安全责任书范文
2014/08/25 职场文书
职工擅自离岗检讨书
2014/09/23 职场文书
2015年学校医务室工作总结
2015/07/20 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript