详解一个小实例理解js原型和继承


Posted in Javascript onApril 24, 2019

导语1:一个构造函数的原型对象,其实就是这个构造函数的一个属性而已,属性名叫prototype,值是一个对象,对象中有一些属性和方法,所以每个构造函数的实例对象都拥有这些属性和方法的使用权。

导语2:构造函数需要用 new 操作符来调用,它本身没有任何意义,只有实例化后才有生命,当然你也可以把它当普通函数使用,那this就是指向window了(意义不大)。

导语3:对于构造函数实例化出一个对象经历了什么?

我们看下面这个例子:

详解一个小实例理解js原型和继承

这个例子充分说明了,大佬们创造出构造函数这种东西,是有特殊用处的,本身没什么意义,在实例化后瞬间有了生命。

 好了有这些准备工作后,我们开始写一个构造函数+原型用法

废话不多说直接上代码!!!

 详解一个小实例理解js原型和继承

1,这个例子中有个构造函数,名字叫GetElem,参数期望传入的是一个元素的id,可以获取这个id的元素;

2,实例化一个叫domOne的对象,它传入一个实参为:“old”;所以它可以获取这个id为old的元素

3,在构造函数的原型上定义一个方法叫:changeInner 作用是如果传入了实参就用实参来改变元素的内容

4,在构造函数的原型上定义一个方法叫:on作用是根据事件类型和对应函数干一些事情;

domOne这个实例化对象中并没有这两个方法,但是没关系,它的原型对象上拥有啊!!!所以可以直接用;

您一定会问为何不直接把方法写在构造函数中不就省事了?原因是这样的话,每实例化一个对象都要在实例化过程中创建这些方法,

如果实例化太多就消耗性能,而放在原型对象上就只需要做一次。这也是构造函数+原型优于工厂模式的方面。

 最后一张图:

 详解一个小实例理解js原型和继承

方法可以链接起来写的原因是  在每个方法中  return this (this指向的是实例对象,当然可以继续调用它可以调用的方法啦!!!)

以上所述是小编给大家介绍的js原型和继承详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 布尔操作符解析  && || !
Aug 10 Javascript
jQuery实现复选框成对选择及对应取消的方法
Mar 03 Javascript
jQuery实现获取table表格第一列值的方法
Mar 01 Javascript
artDialog+plupload实现多文件上传
Jul 19 Javascript
浅谈javascript alert和confirm的美化
Dec 15 Javascript
Mac下使用charles遇到的问题以及解决办法
Jan 10 Javascript
基于twbsPagination.js分页插件使用心得(分享)
Oct 21 Javascript
vue 虚拟dom的patch源码分析
Mar 01 Javascript
vue服务端渲染添加缓存的方法
Sep 18 Javascript
微信小程序如何刷新当前界面的实现方法
Jun 07 Javascript
JavaScript实现模态对话框实例
Jan 13 Javascript
JavaScript实现淘宝商品图切换效果
Apr 29 Javascript
微信小程序实现的一键复制功能示例
Apr 24 #Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
Apr 24 #Javascript
解决vue 单文件组件中样式加载问题
Apr 24 #Javascript
vue router 用户登陆功能的实例代码
Apr 24 #Javascript
10个最受欢迎的 JavaScript框架(推荐)
Apr 24 #Javascript
vue.js多页面开发环境搭建过程
Apr 24 #Javascript
小程序实现订单倒计时功能
Apr 23 #Javascript
You might like
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
jQuery队列操作方法实例
2014/06/11 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
2016/04/11 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
用Pygal绘制直方图代码示例
2017/12/07 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
Python面向对象基础入门之设置对象属性
2018/12/11 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
办公室文员工作自我评价
2013/12/01 职场文书
上课说话检讨书
2015/01/27 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
redis中lua脚本使用教程
2021/11/01 Redis