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 基础篇之对象、数组使用介绍(三)
Apr 07 Javascript
浅析js中2个等号与3个等号的区别
Aug 06 Javascript
jquery实现简单的全选和反选功能
Jan 02 Javascript
学习使用bootstrap基本控件(table、form、button)
Apr 12 Javascript
使用jQuery UI库开发Web界面的简单入门指引
Apr 22 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
Oct 11 Javascript
微信小程序本作用域下调用全局JS详解及实例
Feb 22 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
Jul 24 Javascript
Vue ElementUI之Form表单验证遇到的问题
Aug 21 Javascript
解决在Vue中使用axios用form表单出现的问题
Oct 30 Javascript
vue 解决遍历对象显示的顺序不对问题
Nov 07 Javascript
vue在线动态切换主题色方案
Mar 26 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基础知识:类与对象(5) static
2006/12/13 PHP
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
ThinkPHP路由详解
2015/07/27 PHP
ThinkPHP实现递归无级分类――代码少
2015/07/29 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
yii2 url重写并隐藏index.php方法
2018/12/10 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
jquery实现手机号码选号的方法
2015/07/31 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
Bootstrap选项卡与Masonry插件的完美结合
2016/07/06 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
2017/05/12 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
python简单获取数组元素个数的方法
2015/07/13 Python
Python协程的用法和例子详解
2017/09/09 Python
python re模块的高级用法详解
2018/06/06 Python
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
中医专业应届生求职信
2013/11/17 职场文书
大学生自我鉴定
2013/12/16 职场文书
司机职责范本
2014/03/08 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
一条 SQL 语句执行过程
2022/03/17 MySQL
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis