ES6 类继承 和 super的使用

时间: 2019-02-12阅读: 1393标签: 面向对象

1、super()使用

class A {
    construcor(a, b) {
        this.a = a;
        this.b = b;
    }
}

class B extends A {
    constructor(x, y, z) {
        super(x, y);
        this.z = z;
        console.log(x, '---', y, '----', z, '----');
    }
}

let b = new B(1, 2, 8);
// 1 "---"  2  "----" 8 "----"

注意:ES6中继承的子类中,如果使用构造函数constructor()那么就必须使用 super()方法初始化,这样下面才可以调用this关键字。super()只能用在子类的构造函数之中,用在其他地方就会报错。

子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类自己的this对象,必须先通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后再对其进行加工,加上子类自己的实例属性和方法。如果不调用super方法,子类就得不到this对象。 ---阮一峰


2、父类中的静态方法,子类中可以通过类名直接调用

class A2 {
    static hello() {
        console.log("hello world");
    }
}

class B2 extends A2 {
    constructor() {
        super();
    }
}

B2.hello();
// hello world


3、Object.getPrototypeOf()判断子类继承的父类

Object.getPrototypeOf(B2);
    // A2
通过apply打印变化参数的log
Log() {
    console.log.apple(console, arguments);
}
当参数数量不确定时,函数内部也可以通过 arguments 这个伪数组来遍历所有的参数。

js apply() call() bind() 深入理解 好文推荐:http://www.cnblogs.com/coco1s...

来自:https://segmentfault.com/a/1190000018128863


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/1991

关闭

面向对象三大特征(封装,继承,多态)

代码封装可以避免代码冗余,避免去哪聚变量污染,本质就是把公共的代码抽离出来在需要的地方随时调用在继承中也有体现

JavaScript面向对象思想及继承(转载)

什么是面向对象编程思想,为什么要用面向对象思想。js中的面向对象思想和其他静态语言相比有什么不同。js中prototype,constructor,__proto__这些都是什么鬼?

JavaScript 中的面向对象编程

JavaScript 是一个强大的面向对象编程语言,但是,并不像传统的编程语言,它采用一个以原型为基础的OOP模型,致使它的语法让大多数开发人员看不懂。另外,JavaScript 也把函数作为首要的对象,这可能会给不够熟悉这门语言的开发人员造成更大的困惑

面向对象设计与分析

面向对象方法是一种运用对象,类,继承,封装,聚合,关联,消息,多态等概念和原则来构造软件系统的开发思想(方法)。

面向对象设计的6个设计原则

面向对象设计的6个设计原则:1.单一职责原则,2.里氏替换原则,3.依赖倒置原则,4.接口隔离原则,5.迪米特法则,6.开闭原则

面向对象的反思

在面向对象的设计中,系统是由对象和让对象状态发生改变的方法,让对象到达另一种状态来达到目的的。当系统渐渐变大,对象渐渐变多,每个对象间的纠缠越来越多的时候一个对象的状态受到多个控制信号的机会就越来越多

浅析面向过程与面向对象

在面试时经常会被问到面向过程和面向对象有什么区别,虽然都是编程的一种思想,但是他们的侧重点不同,我们从以下几个方面进行简单总结。

ES6 class与面向对象编程

在ES5中,我们经常使用方法或者对象去模拟类的使用,并基于原型实现继承,虽然可以实现功能,但是代码并不优雅,很多人还是倾向于用 class 来组织代码,很多类库、框架创造了自己的 API 来实现 class 的功能。

面向对象设计的 10 条戒律

我们正在审查一些代码,并开始讨论为什么我们走捷径,不遵循常识原则。虽然每个人在对待关于类应该如何基于功能上下文来构建的问题上都有自己的智慧,但仍然有一些基本原则值得我们在设计类的时候牢牢记住

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!