当前位置: 首页 > news >正文

【挥舞JS】JS实现继承,封装一个extends方法

父类

function Person(name, age) {
    this.name = name;
    this.age = age;
}

Person.prototype = {
    eat: function () {
        console.log(this.name + '正在吃饭...');
    },
    sang: function () {
        console.log(this.name + '正在唱歌...');
    }
};
var liuyu = new Person('刘雨', 26);

子类

function Student(name, age, score) {
    Person.call(this, name, age);
    this.score = score;
}

封装一个 extends 方法

//子类  extends  父类
Function.prototype.extends = function (func, options) {
    for (var key in func.prototype) {
        this.prototype[key] = func.prototype[key];
    }
    for (var name in options) {
        this.prototype[name] = options[name];
    }
};

子类可以继承父类的属性和方法,也可以扩展自己的属性和方法。extends 方法参数:1.父类 2.需要扩展的属性和对象的一个对象集合。

Student.extends(Person, {
    study: function () {
        console.log(this.name + '正在学习...');
    }
});

var can = new Student('can', 22, '良好');
can.eat();
can.work();

相关文章:

  • 使用 Fastlane 实现 iOS 跟 Android 自动打包脚本
  • Python练习-迭代-2018.11.28
  • 武汉区块链软件技术公司:艺术市场如何从区块链中受益?
  • JAVA入门到精通-第26讲-异常
  • Elasticsearch实践(四):IK分词
  • Alpha 冲刺 (10/10)
  • 汉诺塔解析(图解)
  • Go 基础(非常基础)
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • 微服务架构介绍及开源框架
  • 【345】机器学习入门 - 李宏毅机器学习笔记
  • 动态删边SPFA: [HNOI2014]道路堵塞
  • Centos6.9安装JDK1.8
  • Android Studio中SVN的使用
  • MySQL索引原理以及类型
  • 【node学习】协程
  • android图片蒙层
  • co.js - 让异步代码同步化
  • emacs初体验
  • JavaScript设计模式之工厂模式
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • log4j2输出到kafka
  • PHP CLI应用的调试原理
  • Spark学习笔记之相关记录
  • SpringBoot 实战 (三) | 配置文件详解
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Web Storage相关
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 小李飞刀:SQL题目刷起来!
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 最简单的无缝轮播
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • Java总结 - String - 这篇请使劲喷我
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (三) diretfbrc详解
  • (四)模仿学习-完成后台管理页面查询
  • (万字长文)Spring的核心知识尽揽其中
  • (一)u-boot-nand.bin的下载
  • .CSS-hover 的解释
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .net的socket示例
  • @RequestMapping用法详解
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [hdu 1711] Number Sequence [kmp]
  • [HNOI2008]水平可见直线
  • [ios-必看] IOS调试技巧:当程序崩溃的时候怎么办 iphone IOS
  • [JavaEE]线程的状态与安全
  • [LeetCode]Multiply Strings