Так що до цього часу я створював класи та модулі node.js
таким чином:
var fs = require('fs');
var animalModule = (function () {
/**
* Constructor initialize object
* @constructor
*/
var Animal = function (name) {
this.name = name;
};
Animal.prototype.print = function () {
console.log('Name is :'+ this.name);
};
return {
Animal: Animal
}
}());
module.exports = animalModule;
Тепер за допомогою ES6 ви можете робити "фактичні" класи саме так:
class Animal{
constructor(name){
this.name = name ;
}
print(){
console.log('Name is :'+ this.name);
}
}
Зараз, по-перше, я люблю це :), але це викликає питання. Як ви використовуєте це в поєднанні зі node.js
структурою модуля 's?
Скажімо, у вас є клас, де ви хочете використовувати модуль заради демонстрації, скажіть, що ви хочете використовувати fs
тому ви створюєте свій файл:
Animal.js
var fs = require('fs');
class Animal{
constructor(name){
this.name = name ;
}
print(){
console.log('Name is :'+ this.name);
}
}
Це був би правильний шлях?
Крім того, як ви піддаєте цей клас іншим файлам у моєму проекті вузла? А чи зможете ви все-таки розширити цей клас, якщо ви використовуєте його в окремому файлі?
Сподіваюся, хтось із вас зможе відповісти на ці питання :)
animalModule
є досить безглуздим у модулі вузла, який так чи інакше має власну область модуля.