class Animal{
eat():void{
alert("animal eat");
}
} class Mamal extends Animal{
breathe() :void{
alert("Mamal breathe");
}
} class WingedAnimal extends Animal {
fly() {
alert("WingedAnimal fly");
}
}
//模仿实现多继承 的函数方法
function applyMixins(derivedCtor:any,baseCtor:any[]) {
//遍历父类中的所有的属性,添加到子类的属性中中
baseCtor.forEach(baseCtor => {
//获取遍历到的父类中的所有属性
Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
if (name !== "constructor") {
//父类中的属性,添加到子类的属性中
derivedCtor.prototype[name] = baseCtor.prototype[name];
}
});
});
}
//定义Bat类,
class Bat implements Mamal, WingedAnimal{
fly: () => void;
breathe: () => void;
eat: () => void;//这个属性是访问不到
} applyMixins(Bat, [Mamal, WingedAnimal]);
var bat = new Bat();
bat.fly();
bat.breathe();
bat.eat();//执行无结果,eat是Animal类的

缺点:
 1:只能在继承一级的方法和属性

2:如果父类中含有同一种方法或属性,会根据赋值的顺序,先赋值的会被覆盖掉

最新文章

  1. miniui
  2. php设计模式 适配器模式
  3. Shell 脚本 ,, 根据进程号退出 从而关机
  4. 开源PLM软件Aras详解四 ItemType的概念
  5. 编写高效的CSS选择符(节选)
  6. MyQL修改用户名命令、密码
  7. json数据处理技巧(字段带空格、增加字段)
  8. 转: 透过CAT,来看分布式实时监控系统的设计与实现
  9. IOS 第三方开源库记录
  10. 229. Majority Element II My Submissions Question
  11. lightoj 1013
  12. Jquery跨域调用后台方法
  13. STL笔记之【map之移除元素】
  14. 实时 Django 终于来了 —— Django Channels 入门指南
  15. 剑指offer编程题Java实现——替换空格
  16. oracle传入一个可能为空的参数进行查询
  17. vs2013中,自定义mvc 添加视图脚手架
  18. nginx ---refine---按需时间/流量进行调整后台服务器---geocity,proxypass
  19. 为运行SQL Server的虚拟机切换装有DB Logs的最佳实践
  20. ES6数组相关

热门文章

  1. 2014 Container技术大会:未来Linux Container会是PaaS平台的核心
  2. 从ReadImage到ML- 一个不错的博客
  3. 基于Linux/C++简单线程池的实现
  4. 函数GROUP_CONCAT
  5. 图片放大不失真软件PhotoZoom的工具栏
  6. input输入值限制
  7. day34-1 面向对象概述
  8. day28 re(正则)模块
  9. JS防抖与节流
  10. JavaSript 基础学习笔记