详解一个小实例理解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 相关文章推荐
jQuery autocomplate 自扩展插件、自动完成示例代码
Mar 28 Javascript
JQuery调用WebServices的方法和4个实例
May 06 Javascript
javascript+html5实现绘制圆环的方法
Jul 28 Javascript
JS实现仿FLASH效果的竖排导航代码
Sep 15 Javascript
BootStrap制作导航条实例代码
May 06 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
js 性能优化之快速响应的用户界面
Feb 15 Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
Nov 07 Javascript
微信小程序获取用户信息并保存登录状态详解
May 10 Javascript
vue 实现setInterval 创建和销毁实例
Jul 21 Javascript
详解JavaScript作用域 闭包
Jul 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
JavaScript 调试器简介
2009/02/21 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
javascript 实现map集合
2015/04/03 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
json格式数据的添加,删除及排序方法
2016/01/21 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
2018/02/08 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
回调函数的意义以及python实现实例
2017/06/20 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
实习评语大全
2014/04/26 职场文书
关工委先进个人事迹材料
2014/05/23 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
2014年党员整改措施范文
2014/09/21 职场文书
2014年班主任工作总结
2014/11/08 职场文书
团代会开幕词
2015/01/28 职场文书
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js