详解一个小实例理解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 缩图函数 (onDOMLoaded)……
Oct 23 Javascript
javascript Object与Function使用
Jan 11 Javascript
IE6下js通过css隐藏select的一个bug
Aug 16 Javascript
一些实用的jQuery代码片段收集
Jul 12 Javascript
Javascript 闭包引起的IE内存泄露分析
May 23 Javascript
最短的IE判断var ie=!-[1,]分析
May 28 Javascript
BootStrap实用代码片段之一
Mar 22 Javascript
深入浅析JavaScript中with语句的理解
May 12 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
Sep 26 Javascript
Vue在页面数据渲染完成之后的调用方法
Sep 11 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
Sep 02 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
Sep 09 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
function.inc.php超越php
2006/12/09 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
Python中的魔法方法深入理解
2014/07/09 Python
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
Python设计模式之抽象工厂模式
2016/08/25 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
Python数据集切分实例
2018/12/08 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
Python pymsql模块的使用
2020/09/07 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
Joules美国官网:出色的英国风格
2017/10/30 全球购物
党校培训自我鉴定
2014/02/01 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
优秀团员事迹材料
2014/12/25 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
预备党员考察意见范文
2015/06/01 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书