详解一个小实例理解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 相关文章推荐
来自chinaz的ajax获取评论代码
May 03 Javascript
一组JS创建和操作表格的函数集合
May 07 Javascript
使用jQuery简化Ajax开发 Ajax开发入门
Oct 14 Javascript
jQuery实现原理的模拟代码 -6 代码下载
Aug 16 Javascript
js+数组实现网页上显示时间/星期几的实用方法
Jan 18 Javascript
js对文章内容进行分页示例代码
Mar 05 Javascript
Vue动态控制input的disabled属性的方法
Jun 26 Javascript
Vue实现todolist删除功能
Jun 26 Javascript
vue基于viewer实现的图片查看器功能
Apr 12 Javascript
ES6入门教程之let、const的使用方法
Apr 13 Javascript
使用vue实现各类弹出框组件
Jul 03 Javascript
vue登录以及权限验证相关的实现
Oct 25 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
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
推荐:极酷右键菜单
2006/11/29 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
Django自定义过滤器定义与用法示例
2018/03/22 Python
django云端留言板实例详解
2019/07/22 Python
如何基于python测量代码运行时间
2019/12/25 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
django form和field具体方法和属性说明
2020/07/09 Python
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
管理部副部长岗位职责范文
2014/03/09 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
工作求职信
2014/07/04 职场文书
初中生物教学随笔
2015/08/15 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
React Fragment介绍与使用详解
2021/11/11 Javascript