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 相关文章推荐
在js中使用"with"语句中跨frame的变量引用问题
Mar 08 Javascript
30个最好的jQuery 灯箱插件分享
Apr 25 Javascript
js弹出的对话窗口永远保持居中显示
Dec 15 Javascript
js读写(删除)Cookie实例详解
Apr 17 Javascript
jQuery如何防止这种冒泡事件发生
Feb 27 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
Sep 10 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
Dec 03 Javascript
jQuery命名空间与闭包用法示例
Jan 12 Javascript
B/S(Web)实时通讯解决方案分享
Apr 06 Javascript
js自定义Tab选项卡效果
Jun 05 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 Javascript
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
基于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语法(5)
2006/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
jquery tools之tooltip
2009/07/25 Javascript
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
document.execCommand()的用法小结
2014/01/08 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
JavaScript编写的网页小游戏,很给力
2017/08/18 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
jQuery中event.target和this的区别详解
2020/08/13 jQuery
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
python 根据pid杀死相应进程的方法
2017/01/16 Python
Python之web模板应用
2017/12/26 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
Python模块相关知识点小结
2020/03/09 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
优秀应届毕业生自荐信
2013/11/16 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
美国探亲签证邀请信
2014/02/05 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
教你nginx跳转配置的四种方式
2022/07/07 Servers
MySQL索引失效场景及解决方案
2022/07/23 MySQL