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 相关文章推荐
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
Jul 26 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
Jan 24 Javascript
JQuery 控制内容长度超出规定长度显示省略号
May 23 Javascript
JavaScript中的操作符==与===介绍
Dec 31 Javascript
javascript实现删除前弹出确认框
Jun 04 Javascript
vue2.x select2 指令封装详解
Oct 12 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
Oct 21 Javascript
webpack3之loader全解析
Oct 26 Javascript
Vue中v-for的数据分组实例
Mar 07 Javascript
详解jQuery中的easyui
Sep 02 jQuery
vuex实现及简略解析(小结)
Mar 01 Javascript
如何在微信小程序中实现Mixins方案
Jun 20 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实现高效获取图片尺寸的方法
2014/12/12 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
关于jquery.validate1.9.0前台验证的使用介绍
2013/04/26 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
[01:44]Ti10举办地公布
2019/08/25 DOTA
python调用cmd复制文件代码分享
2013/12/27 Python
python自定义解析简单xml格式文件的方法
2015/05/11 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
Python中调用其他程序的方式详解
2019/08/06 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
零基础学python应该从哪里入手
2020/08/11 Python
计算机本科生自荐信
2013/10/15 职场文书
制衣厂各岗位职责
2013/12/02 职场文书
小学毕业感言500字
2014/02/28 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
2015元旦节寄语
2014/12/08 职场文书
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS
Windows server 2016服务器基本设置
2022/08/14 Servers