详解一个小实例理解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 jscroll模拟html元素滚动条
Dec 18 Javascript
浅谈javascript中的instanceof和typeof
Feb 27 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
Apr 04 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
Nov 24 Javascript
微信公众号 摇一摇周边功能开发
Dec 08 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
Feb 27 Javascript
作为老司机使用 React 总结的 11 个经验教训
Apr 08 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
Aug 08 jQuery
bootstrap Table服务端处理分页(后台是.net)
Oct 19 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
Sep 14 Javascript
在Layui中实现开关按钮的效果实例
Sep 29 Javascript
JavaScript位置参数实现原理及过程解析
Sep 14 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
substr()函数中文版
2006/10/09 PHP
PHP 调试工具Debug Tools
2011/04/30 PHP
yii操作session实例简介
2014/07/31 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
优化javascript的执行速度
2010/01/23 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
详解React Native顶|底部导航使用小技巧
2017/09/14 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
Python实现SVN的目录周期性备份实例
2015/07/17 Python
简单解析Django框架中的表单验证
2015/07/17 Python
Python实现Logger打印功能的方法详解
2017/09/01 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
Python类的继承和多态代码详解
2017/12/27 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
详解python中eval函数的作用
2019/10/22 Python
Python eval函数介绍及用法
2020/11/09 Python
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
公司新年寄语
2014/04/04 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
警用民用对讲机找不同
2022/02/18 无线电