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 相关文章推荐
PJ Blog修改-禁止复制的代码和方法
Oct 25 Javascript
读jQuery之十 事件模块概述
Jun 27 Javascript
地址栏传递中文参数乱码在js里用escape转码
Aug 28 Javascript
基于BootStrap的图片轮播效果展示实例代码
May 23 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
May 30 Javascript
Vue2.0组件间数据传递示例
Mar 07 Javascript
js使用i18n实现页面国际化的方法
May 09 Javascript
JavaScript实现开关等效果
Sep 08 Javascript
详解vue渲染函数render的使用
Dec 12 Javascript
Vue-cli项目获取本地json文件数据的实例
Mar 07 Javascript
ES6 Object属性新的写法实例小结
Jun 25 Javascript
vue实现简单加法计算器
Oct 22 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
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
javascript之水平横向滚动歌词同步的应用
2007/05/07 Javascript
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
JS Replace()的高级使用方法介绍
2013/06/29 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
Python函数式编程指南(二):从函数开始
2015/06/24 Python
分析用Python脚本关闭文件操作的机制
2015/06/28 Python
python实现下载指定网址所有图片的方法
2015/08/08 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
Python通过format函数格式化显示值
2020/10/17 Python
草莓网英国官网:Strawberrynet UK
2017/02/12 全球购物
EJB的激活机制
2013/10/25 面试题
大学应届毕业生个人求职信
2013/09/23 职场文书
员工工作表现评语
2014/04/26 职场文书
综合实践活动报告
2015/02/05 职场文书
中学生逃课检讨书
2015/02/17 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
进行数据处理的6个 Python 代码块分享
2022/04/06 Python
Android Rxjava3 使用场景详解
2022/04/07 Java/Android