详解一个小实例理解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 相关文章推荐
HTTP状态代码以及定义(解释)
Feb 02 Javascript
javascript编程起步(第三课)
Feb 27 Javascript
jQuery实现瀑布流布局
Dec 12 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
Mar 03 Javascript
js限制文本框只能输入中文的方法
Aug 11 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
Nov 29 Javascript
jquery 遍历数组 each 方法详解
May 25 Javascript
jQuery插件zTree实现获取一级节点数据的方法
Mar 08 Javascript
Vue.js bootstrap前端实现分页和排序
Mar 10 Javascript
AngularJS自定义指令之复制指令实现方法
May 18 Javascript
对vue下点击事件传参和不传参的区别详解
Sep 15 Javascript
微信小程序全局变量改变监听的实现方法
Jul 15 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中的curl_multi系列函数使用例子
2014/07/29 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
laravel请求参数校验方法
2019/10/10 PHP
我见过最全的个人js加解密功能页面
2007/12/12 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
简单了解python模块概念
2018/01/11 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
在python中使用nohup命令说明
2020/04/16 Python
Python中如何添加自定义模块
2020/06/09 Python
python用什么编辑器进行项目开发
2020/06/17 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
2020/12/22 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
应用电子专业学生的自我评价
2013/10/16 职场文书
大学军训感言1000字
2014/02/25 职场文书
科技之星事迹材料
2014/06/02 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书