我正在尝试学习快递,并希望将ES6与babel一起使用。我的问题是当我使用静态方法来处理像bellow这样的请求时;
class MyCtrl {
static index (req,res) {
res.status(200).send({data:"json data"});
}
}
router.get('/', MyCtrl.index)
我想知道,这(使用静态方法)是否会影响性能?我对Node.js运行时没有太多了解,但据我所知,使用静态方法经常使用某种语言(如C#)并不是一件好事。
或者是否有其他正确的方法可以使用ES6类。
答案 0 :(得分:2)
ES6课程并不是一个新的结构,它只是JavaScript原型模型的一些语法糖。
所以当你做这样的事情时:
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
static printAllowedTypes() {
console.log('Rabbit, Dog, Cat, Monkey');
}
printName() {
console.log(`Name: ${this.name}`);
}
printAge() {
console.log(`Age: ${this.age}`);
}
}
在幕后,它基本上只是转换为:
function Animal(name, age) {
this.name = name;
this.age = age;
}
Animal.printAllowedTypes = function() {
console.log('Rabbit, Dog, Cat, Monkey');
};
Animal.prototype.printName = function() {
console.log(`Name: ${this.name}`);
};
Animal.prototype.printAge = function() {
console.log(`Age: ${this.age}`);
};
所以这是一个方便的速记,但它仍然只是使用JavaScript的原型。因此,就您的问题而言,您所做的只是将常规函数传递给router.get
,因此没有任何性能差异。