详解一个小实例理解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的AutoComplete插件
May 04 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
Jan 04 Javascript
jQuery阻止同类型事件小结
Apr 19 Javascript
JS实现图片放大镜效果的方法
Feb 27 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
Jun 01 Javascript
jquery 表单验证之通过 class验证表单不为空
Nov 02 Javascript
深入理解js promise chain
May 05 Javascript
基于jQuery实现仿百度首页选项卡切换效果
May 29 Javascript
JavaScript循环_动力节点Java学院整理
Jun 28 Javascript
CKEditor4配置与开发详细中文说明文档
Oct 08 Javascript
JS原生瀑布流效果实现
Apr 26 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
May 14 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 函数使用方法与函数定义方法
2010/05/09 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
javascript中的有名函数和无名函数
2007/10/17 Javascript
js对象的比较
2011/02/26 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
倒记时60刷新网页的js代码
2014/02/18 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
vue中element 上传功能的实现思路
2018/07/06 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
Python yield使用方法示例
2013/12/04 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
基于Python新建用户并产生随机密码过程解析
2019/10/08 Python
python数据抓取3种方法总结
2021/02/07 Python
python解包用法详解
2021/02/17 Python
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
大二学期个人自我评价
2014/01/13 职场文书
面试自我介绍演讲稿
2014/04/29 职场文书
中秋晚会活动方案
2014/08/31 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
财务总监岗位职责
2015/02/03 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
Python中的xlrd模块使用整理
2021/06/15 Python