浅析JS原型继承与类的继承


Posted in Javascript onApril 07, 2016

我们先看JS类的继承

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
    <title>JS类的继承</title>
</head>

<body>
  /* -- 类式继承 -- */
  <script type="text/javascript">
  //先声明一个超类
  var Animal = function(name) {
      this.name = name;
    }
    //给这个超类的原型对象上添加方法
  Animal.prototype.Eat = function() {
    console.log(this.name + " Eat");
  };
  //实例化这个超
  var a = new Animal("Animal");

  //再创建构造函数对象类
  var Cat = function(name, sex) {
      //这个类中要调用超类Animal的构造函数,并将参数name传给它
      Animal.call(this, name);
      this.sex = sex;
    }
    //这个子类的原型对象等于超类的实例
  Cat.prototype = new Animal();
  //因为子类的原型对象等于超类的实例,所以prototype.constructor这个方法也等于超类构造函数

  console.log(Cat.prototype.constructor);
  //这个是Animal超类的引用,所以要从新赋值为自己本身
  Cat.prototype.constructor = Cat;
  console.log(Cat.prototype.constructor);
  //子类本身添加了getSex 方法
  Cat.prototype.getSex = function() {
      return this.sex;
    }
    //实例化这个子类
  var _m = new Cat('cat', 'male');
  //自身的方法
  console.log(_m.getSex()); //male
  //继承超类的方法
  console.log(_m.Eat()); //cat
  </script>
</body>

</html>

 我们再看JS原型继承

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>JS原型继承</title>
</head>

<body>
  <!--原型继承-->
  <script type="text/javascript">
  //clone()函数用来创建新的类Person对象
  var clone = function(obj) {
    var _f = function() {};
    //这句是原型式继承最核心的地方,函数的原型对象为对象字面量
    _f.prototype = obj;
    return new _f;
  }

  //先声明一个对象字面量
  var Animal = {
      somthing: 'apple',
      eat: function() {
        console.log("eat " + this.somthing);
      }
    }
    //不需要定义一个Person的子类,只要执行一次克隆即可
  var Cat = clone(Animal);
  //可以直接获得Person提供的默认值,也可以添加或者修改属性和方法
  console.log(Cat.eat());
  Cat.somthing = 'orange';
  console.log(Cat.eat());

  //声明子类,执行一次克隆即可
  var Someone = clone(Cat);
  </script>
</body>

</html>

我们可以试验一下,JS类的继承 children.constructor==father 返回的是true,而原型继承children.constructor==father 返回的是false;

以上这篇浅析JS原型继承与类的继承就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery结合CSS操作打印样式的方法
Dec 24 Javascript
仿JQuery输写高效JSLite代码的一些技巧
Jan 13 Javascript
angular.bind使用心得
Oct 26 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
May 18 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
Jul 10 Javascript
jQuery实现二维码扫描功能
Jan 09 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
May 11 Javascript
Vue 莹石摄像头直播视频实例代码
Aug 31 Javascript
JavaScript命名空间模式实例详解
Jun 20 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
Aug 26 Javascript
基于Vue 撸一个指令实现拖拽功能
Oct 09 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
Jul 14 jQuery
AngularJs 弹出模态框(model)
Apr 07 #Javascript
详解AngularJS 模态对话框
Apr 07 #Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
Apr 07 #Javascript
jQuery动态添加
Apr 07 #Javascript
javascript模块化简单解析
Apr 07 #Javascript
jquery编写Tab选项卡滚动导航切换特效
Jul 17 #Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
Apr 07 #Javascript
You might like
php的declare控制符和ticks教程(附示例)
2014/03/21 PHP
WordPress中is_singular()函数简介
2015/02/05 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
jQuery AnythingSlider滑动效果插件
2010/02/07 Javascript
jquery无缝向上滚动实现代码
2013/03/29 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
详解vue中v-model和v-bind绑定数据的异同
2020/08/10 Javascript
Python的Flask框架中web表单的教程
2015/04/20 Python
Python函数参数操作详解
2018/08/03 Python
Python读写文件基础知识点
2019/06/10 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
Python全栈之列表数据类型详解
2019/10/01 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
eBay美国官网:eBay.com
2020/10/24 全球购物
集团公司人力资源部岗位职责
2014/01/03 职场文书
大班亲子运动会方案
2014/06/10 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
2014年社区重阳节活动策划方案
2014/09/16 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
2014年班务工作总结
2014/12/02 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书