Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Node v4 - 类(Classes)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

1、类声明

类声明和类表达式

ES6中的类实际上就是一个函数,定义的方式分别是:类声明类表达式

类声明

类声明是定义类的一种方式,使用class关键字后跟一个类名,就可以定义一个类。

'use strict';
class Polygon {
    constructor(height,width) {
        this.height = height;
        this.width = width;
    }
}

变量提升

类声明和函数声明不同的一点是,函数声明存在变量提升现象,而类声明不会。也就是说,必须先声明类,然后才能使用它,否则代码会抛出——ReferenceError异常。

'use strict';
var p = new Polygon();//ReferenceError: Polygon is not defined
class Polygon {
}

2、类表达式

类表达式是定义类的另一种方式,在类表达式中,类名是可有可无的。如果定义了类名,则该类名只有在类体内部才能访问到。

'use strict';
//匿名类表达式
let Polygon = class {
    constructor(height,width) {
        this.height = height;
        this.width = width;
    }
};

//命令类表达式
let Polygon = class Polygon {
    constructor(height,width) {
        this.height = height;
        this.width = width;
    }
};

3、构造函数

类的成员需要定义在一对花括号{}里,花括号里的代码和花括号本身组成了类体。类成员包括类构造器方法包括静态方法和实例方法)。

class根据constructor方法来创建和初始化对象。

constructor方法是类方法,通过new命令生成对象实例时,自动调用方法一个类只能有一个constructor方法,如果没有显示定义,一个空的constructor方法会被添加

constructor方法认返回实例对象(即this),完全可以指定返回另外一个对象。

'use strict';
class Foo {
    constructor() {
        return Object.create(null);
    }
}
console.log(new Foo() instanceof Foo);//false

constructor函数返回一个全新的对象,结果导致实例对象不是Foo类的实例。

constructor方法一个特殊的类方法,它既不是静态方法,也不是实例方法,它仅在实例化一个类的时候被调用一个类只能拥有一个名为constructor方法,否则会抛出SyntaxError异常。

严格模式

类和模块的内部,认就是严格模式,所有不需要使用use strict指定行为模式。只要代码写在类或模块之中,就只有严格模式可用。

4、静态方法

static关键字定义了一个类的静态方法。静态方法被称为无需实例化类也可当类被实例化。静态方法通常用于为应用程序创建实用函数

'use strict';
class Point {
    constructor(x,y) {
        this.x = x;
        this.y = y;
    }

    static distance(a,b) {
        const dx = a.x - b.x;
        const dy = a.y - b.y;
        return Math.sqrt(dx * dx + dy * dy);
    }
}
const p1 = new Point(5,5);
const p2 = new Point(10,10);
console.log(Point.distance(p1,p2));

5、使用extends关键字创建子类

extends关键字可以用来创建继承于某个类的子类。

'use strict';
class Animal {
    constructor(name) {
        this.name = name;
    }

    speak() {
        console.log(this.name + ' makes a noise.')
    }
}
class Dog extends Animal {
    speak() {
        console.log(this.name + " barks.")
    }
}
var dog = new Dog("NiNi");
dog.speak();

大佬总结

以上是大佬教程为你收集整理的Node v4 - 类(Classes)全部内容,希望文章能够帮你解决Node v4 - 类(Classes)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: