在 NodeJS 应用程序上使用 JS es6

JS es6(也称为 es2015)是 JS 语言的一组新功能,旨在使其在使用 OOP 或面对现代开发任务时更加直观。

先决条件:

  1. 查看 http://es6-features.org 上的新 es6 功能 - 如果你真的打算在下一个 NodeJS 应用程序中使用它,它可能会向你说明

  2. http://node.green 上检查节点版本的兼容级别

  3. 如果一切正常 - 让我们的代码开启!

这是一个使用 JS es6 的简单 hello world 应用程序的非常简短的示例

'use strict'

class Program
{
    constructor()
    {
        this.message = 'hello es6 :)';
    }

    print()
    {
        setTimeout(() =>
        {
            console.log(this.message);
            
            this.print();

        }, Math.random() * 1000);
    }
}

new Program().print();

你可以运行此程序并观察它如何反复打印相同的消息。

现在..让我们逐行分解:

'use strict'

如果你打算使用 js es6,则实际需要此行。故意,strict 模式与普通代码有不同的语义(请在 MDN 上阅读更多相关信息 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode)

class Program

难以置信 - 一个 class 关键字! 只是为了快速参考 - 在 es6 之前,在 js 中定义类的唯一方法是使用… function 关键字!

function MyClass() // class definition
{

}

var myClassObject = new MyClass(); // generating a new object with a type of MyClass

使用 OOP 时,类是一种非常基本的能力,可以帮助开发人员代表系统的特定部分(当代码变大时,分解代码至关重要……例如:编写服务器端代码时)

constructor()
{
    this.message = 'hello es6 :)';
}

你必须承认 - 这非常直观! 这是我类的成员 - 每次从这个特定的类创建一个对象时,这个独特的函数就会出现(在我们的程序中 - 只有一次)

print()
{
    setTimeout(() => // this is an 'arrow' function
    {
        console.log(this.message);
        
        this.print(); // here we call the 'print' method from the class template itself (a recursion in this particular case)

    }, Math.random() * 1000);
}

因为 print 是在类范围中定义的 - 它实际上是一个方法 - 可以从类的对象或类本身中调用它!

所以……直到现在我们定义了我们的类…时间使用它:

new Program().print();

这真的等于:

var prog = new Program(); // define a new object of type 'Program'

prog.print(); // use the program to print itself

总结: JS es6 可以简化你的代码 - 让它更直观,更容易理解(与之前的 JS 版本相比)..你可能会尝试重写你现有的代码,看看你自己的差异

请享用 :)