在 NodeJS 应用程序上使用 JS es6
JS es6(也称为 es2015)是 JS 语言的一组新功能,旨在使其在使用 OOP 或面对现代开发任务时更加直观。
先决条件:
-
查看 http://es6-features.org 上的新 es6 功能 - 如果你真的打算在下一个 NodeJS 应用程序中使用它,它可能会向你说明
-
在 http://node.green 上检查节点版本的兼容级别
-
如果一切正常 - 让我们的代码开启!
这是一个使用 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 版本相比)..你可能会尝试重写你现有的代码,看看你自己的差异
请享用 :)