什么是继承?
继承就是你爸爸很多钱,所以你就继承你爸爸,变成了富二代,也是个有钱的主,
突然你爸爸世界杯赌球,输了个精光,于是你也变成了穷光蛋。这个就是继承
非也,非也。
有一回人家让用原声的js写个继承,一脸懵逼,写过.net 的继承,写过PHP的继承,或者ES6继承,原生js 怎么写?
就说前端做个企业官网,电商网站,或者系统ERP,或者OA,感觉说这些东西都用不上,
回去复习下,多读点书吧。不爱学习,不思进取,目前短浅。鼠目寸光,不知不觉就被淘汰了。
我真是忘了...
C# 继承
public class A {
private int a;
private int b;
}
public class B :A {
private int c;
private int b;
}
//B 继承 A
ES6 继承
export default class A {
constructor(props){
super(props)
}
test() { alert('test') }
}
export default class B extends A {
constructor(props){
super(props)
}
test1() { this.test() }
}
//B 继承 A
要用 ECMAScript 实现继承机制,您可以从要继承的基类入手。所有开发者定义的类都可作为基类。出于安全原因,本地类和宿主类不能作为基类,这样可以防止公用访问编译过的浏览器级的代码,因为这些代码可以被用于恶意攻击。
选定基类后,就可以创建它的子类了。是否使用基类完全由你决定。有时,你可能想创建一个不能直接使用的基类,它只是用于给子类提供通用的函数。在这种情况下,基类被看作抽象类。 尽管 ECMAScript 并没有像其他语言那样严格地定义抽象类,但有时它的确会创建一些不允许使用的类。通常,我们称这种类为抽象类。
创建的子类将继承超类的所有属性和方法,包括构造函数及方法的实现。记住,所有属性和方法都是公用的,因此子类可直接访问这些方法。子类还可添加超类中没有的新属性和方法,也可以覆盖超类的属性和方法。
和其他功能一样,ECMAScript 实现继承的方式不止一种。这是因为 JavaScript 中的继承机制并不是明确规定的,而是通过模仿实现的。这意味着所有的继承细节并非完全由解释程序处理。作为coder,这个实现的姿势你可以按你的方式选择。
实现继承的几种姿势
构想原始的 ECMAScript 时,根本没打算设计对象冒充(object masquerading)。它是在开发者开始理解函数的工作方式,尤其是如何在函数环境中使用 this 关键字后才发展出来。
原理: 构造函数使用 this 关键字给所有属性和方法赋值(即采用类声明的构造函数方式)。因为构造函数只是一个函数,所以可使 ClassA 构造函数成为 ClassB 的方法,然后调用它。ClassB 就会收到 ClassA 的构造函数中定义的属性和方法。
原文:https://www.cnblogs.com/chuchur/p/10462217.html