详解一个小实例理解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 相关文章推荐
Extjs学习笔记之八 继承和事件基础
Jan 08 Javascript
JQuery对class属性的操作实现按钮开关效果
Oct 11 Javascript
屏蔽IE弹出"您查看的网页正在试图关闭窗口,是否关闭此窗口"的方法
Dec 31 Javascript
extjs 分页使用jsp传递数据示例
Jul 29 Javascript
js获取鼠标位置实例详解
Dec 09 Javascript
Bootstrap创建可折叠的组件
Feb 23 Javascript
原生js实现弹出层效果
Jan 20 Javascript
基于JavaScript实现购物车功能
Feb 07 Javascript
浅谈react.js 之 批量添加与删除功能
Apr 17 Javascript
完美实现js拖拽效果 return false用法详解
Jul 28 Javascript
如何为你的JS项目添加智能提示与类型检查详解
Mar 12 Javascript
微信小程序实现图片上传
May 23 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
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
如何实现JS函数的重载
2006/09/22 Javascript
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
2020/05/19 jQuery
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
python中的编码知识整理汇总
2016/01/26 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
Django REST framework 视图和路由详解
2019/07/19 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
材料加工工程求职信
2014/02/19 职场文书
设备收款委托书范本
2014/10/02 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
三好学生竞选稿
2015/11/21 职场文书