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写的日历类(基于pj)
Dec 28 Javascript
下拉菜单点击实现连接跳转功能的js代码
May 19 Javascript
js判断移动端是否安装某款app的多种方法
Dec 18 Javascript
jquery自定义表单验证插件
Oct 12 Javascript
利用Angular.js限制textarea输入的字数
Oct 20 Javascript
Angularjs 设置全局变量的方法总结
Oct 20 Javascript
jQuery多选框选择数量限制方法
Feb 08 Javascript
微信小程序获取手机号授权用户登录功能
Nov 09 Javascript
微信小程序实现留言板功能
Nov 02 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
Jan 23 Javascript
微信小程序实现卡片层叠滑动效果
Jun 21 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
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
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
php适配器模式简单应用示例
2019/10/23 PHP
JS 判断代码全收集
2009/04/28 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
jquery css 设置table的奇偶行背景色示例
2014/06/03 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
jquery实现Ctrl+Enter提交表单的方法
2015/07/21 Javascript
整理Javascript流程控制语句学习笔记
2015/11/29 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
vue组件name的作用小结
2018/05/23 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
2014/04/08 Python
python实现根据月份和日期得到星座的方法
2015/03/27 Python
Python中动态创建类实例的方法
2017/03/24 Python
python分布式环境下的限流器的示例
2017/10/26 Python
python实现抽奖小程序
2020/04/15 Python
Python 串口读写的实现方法
2019/06/12 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
简述 Python 的类和对象
2020/08/21 Python
椰子猫砂:CatSpot
2018/08/27 全球购物
软件缺陷的分类都有哪些
2014/08/22 面试题
简短证婚人证婚词
2014/01/09 职场文书
保险公司晨会主持词
2014/03/22 职场文书
学生评语大全
2014/04/18 职场文书
初中物理教学反思
2016/02/19 职场文书
php将xml转化对象的实例详解
2021/11/17 PHP
Python实现抖音热搜定时爬取功能
2022/03/16 Python