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 相关文章推荐
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
Jan 15 Javascript
js 对小数加法精度处理示例说明
Dec 27 Javascript
AngularJS入门教程(二):AngularJS模板
Dec 06 Javascript
jQuery+PHP打造滑动开关效果
Dec 16 Javascript
jquery datatable服务端分页
Aug 31 Javascript
vue模板语法-插值详解
Mar 06 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
Jul 03 Javascript
Easyui和zTree两种方式分别实现树形下拉框
Aug 04 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
Sep 03 Javascript
详解如何制作并发布一个vue的组件的npm包
Nov 10 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
May 26 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
Jun 05 Javascript
微信小程序 天气预报开发实例代码源码
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
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
PHP创建自己的Composer包方法
2018/04/09 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
JS XMLHttpRequest原理与使用方法深入详解
2020/04/30 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python实现的Excel文件读写类
2015/07/30 Python
Python paramiko模块的使用示例
2018/04/11 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
python reverse反转部分数组的实例
2018/12/13 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
Python实现数字的格式化输出
2020/08/01 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
法院实习人员自我鉴定
2013/09/26 职场文书
网络工程师个人的自我评价范文
2013/10/01 职场文书
学生自我鉴定范文
2013/10/04 职场文书
物流专业大学应届生求职信
2013/11/03 职场文书
护士实习生自我鉴定范文
2013/12/10 职场文书
大学生自我鉴定评语
2014/01/27 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android