由一道题透顶弄懂,面向对象

2019-10-16 15:40 来源:未知

如何继承 Date 对象?由一道题彻底弄懂 JS 继承

2018/01/25 · JavaScript · Date, 继承

原文出处: 撒网要见鱼   

面向对象的语言都有一个类的概念,通过类可以创建多个具有相同方法和属性的对象,ES6之前并没有类的概念,在ES6中引入类class.

前言

见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会及时修正。

———-长文+多图预警,需要花费一定时间———-

故事是从一次实际需求中开始的。。。

某天,某人向我寻求了一次帮助,要协助写一个日期工具类,要求:

  • 此类继承自Date,拥有Date的所有属性和对象
  • 此类可以自由拓展方法

形象点描述,就是要求可以这样:

// 假设最终的类是 MyDate,有一个getTest拓展方法 let date = new MyDate(); // 调用Date的方法,输出GMT绝对毫秒数 console.log(date.getTime()); // 调用拓展的方法,随便输出什么,譬如helloworld! console.log(date.getTest());

1
2
3
4
5
6
7
// 假设最终的类是 MyDate,有一个getTest拓展方法
let date = new MyDate();
 
// 调用Date的方法,输出GMT绝对毫秒数
console.log(date.getTime());
// 调用拓展的方法,随便输出什么,譬如helloworld!
console.log(date.getTest());

于是,随手用JS中经典的组合寄生法写了一个继承,然后,刚准备完美收工,一运行,却出现了以下的情景:

图片 1

但是的心情是这样的:

TAG标签:
版权声明:本文由金沙澳门唯一官网发布于前端开发,转载请注明出处:由一道题透顶弄懂,面向对象