js的三种继承方式详解


Posted in Javascript onJanuary 21, 2017

1.js原型(prototype)实现继承

代码如下

<body> 
<script type="text/javascript"> 
 function Parent(name,age){
   this.name=name;
   this.age=age;
   this.sayHi=function(){
    alert("Hi, my name is "+this.name+", my age is "+this.age);
   }
  }
//Child继承Parent
  function Child(grade){
   this.grade=grade;
   this.sayGrade=function(){
    alert("My grade is "+this.grade);
   }
  }
  Child.prototype=new Parent("小明","10");/////////// 
  var chi=new Child("5");
  chi.sayHi();
  chi.sayGrade();
</script> 
</body>

2.构造函数实现继承 

代码如下:

<body> 
<script type="text/javascript"> 
 function Parent(name,age){
   this.name=name;
   this.age=age;
   this.sayHi=function(){
    alert("Hi, my name is "+this.name+", my age is "+this.age);
   }
  }
//Child继承Parent 
  function Child(name,age,grade){
   this.grade=grade;
   this.sayHi=Parent;///////////
   this.sayHi(name,age);
   this.sayGrade=function(){
    alert("My grade is "+this.grade);
   }
  }
  var chi=new Child("小明","10","5");
  chi.sayHi();
  chi.sayGrade();
</script> 
</body>

3.call , apply实现继承         -----很方便!

代码如下:

<body> 
<script type="text/javascript"> 
 function Parent(name,age){
   this.name=name;
   this.age=age;
   this.sayHi=function(){
    alert("Hi, my name is "+this.name+", my age is "+this.age);
   }
  }
  function Child(name,age,grade){
   this.grade=grade;
   // Parent.call(this,name,age);/////////// 
   // Parent.apply(this,[name,age]);/////////// 都可
   Parent.apply(this,arguments);/////////// 
   this.sayGrade=function(){
    alert("My grade is "+this.grade);
   }
  // this.sayHi=function(){
   //  alert("Hi, my name is "+this.name+", my age is "+this.age+",My grade is "+this.grade);
   // }
  }
  var chi=new Child("小明","10","5");
  chi.sayHi();
  chi.sayGrade();
</script> 
</body>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
悬浮数字的实现案例
Feb 19 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
Jun 03 Javascript
javascript实现表格排序 编辑 拖拽 缩放
Jan 02 Javascript
JS实现简单易用的手机端浮动窗口显示效果
Sep 07 Javascript
vue基于Vue2.0和高德地图的地图组件实例
Apr 28 Javascript
zTree树形插件异步加载方法详解
Jun 14 Javascript
微信小程序使用navigateTo数据传递的实例
Sep 26 Javascript
微信小程序富文本渲染引擎的详解
Sep 30 Javascript
webpack配置打包后图片路径出错的解决
Apr 26 Javascript
Vue项目安装插件并保存
Jan 28 Javascript
webpack 动态批量加载文件的实现方法
Mar 19 Javascript
Vue如何跨组件传递Slot的实现
Dec 14 Vue.js
微信小程序 天气预报开发实例代码源码
Jan 20 #Javascript
微信小程序 自定义对话框实例详解
Jan 20 #Javascript
Vue实例简单方法介绍
Jan 20 #Javascript
微信小程序 Toast自定义实例详解
Jan 20 #Javascript
JavaScript判断浏览器及其版本信息
Jan 20 #Javascript
JS中传递参数的几种不同方法比较
Jan 20 #Javascript
JS出现失效的情况总结
Jan 20 #Javascript
You might like
php在程序中将网页生成word文档并提供下载的代码
2012/10/09 PHP
对比分析php中Cookie与Session的异同
2016/02/19 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
JavaScript基本对象
2007/01/11 Javascript
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
vue.js中过滤器的使用教程
2017/06/08 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
浅谈ng-zorro使用心得
2018/12/03 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
js里面的变量范围分享
2020/07/18 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
使用python实现strcmp函数功能示例
2014/03/25 Python
python小技巧之批量抓取美女图片
2014/06/06 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
python中的协程深入理解
2019/06/10 Python
简单的命令查看安装的python版本号
2020/08/28 Python
利用CSS3的checked伪类实现OL的隐藏显示的方法
2010/12/18 HTML / CSS
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
网络事业创业计划书范文
2014/01/09 职场文书
白酒营销策划方案
2014/08/17 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
公司副总经理岗位职责
2014/10/01 职场文书
总结Python使用过程中的bug
2021/06/18 Python
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers