Javascript 使用ES6类而不是常量并将其导出
我对ES6中的类编码有点困惑。假设我想创建一个类似于JS的简单库。我在my library.js中创建了这样一个模块:Javascript 使用ES6类而不是常量并将其导出,javascript,ecmascript-6,es6-class,Javascript,Ecmascript 6,Es6 Class,我对ES6中的类编码有点困惑。假设我想创建一个类似于JS的简单库。我在my library.js中创建了这样一个模块: const $ = (...args) => { if (typeof args[0] === 'function') { const docReadyFn = args[0]; document.addEventListener('DOMContentLoaded', docReadyFn); } } module.exports = $
const $ = (...args) => {
if (typeof args[0] === 'function') {
const docReadyFn = args[0];
document.addEventListener('DOMContentLoaded', docReadyFn);
}
}
module.exports = $;
然后我需要index.js中的此文件:
const $ = require('./library');
module.exports = $;
并在另一个文件中使用它:
const $ = require('./library');
$(() => {
console.log('DOM ready!');
});
但是,我不想做const$=(…args)=>{…}
而是想创建一个具有如下构造函数的类:
class Library {
constructor(...args) {
if (typeof args[0] === 'function') {
const docReadyFn = args[0];
document.addEventListener('DOMContentLoaded', docReadyFn);
}
}
}
module.exports = Library;
这样做明智吗?对于类,我必须使用
newlibrary(args)
创建一个新实例,但是通过导出const$=(…args)=>{…}
我可以简单地使用$
,而不做任何事情。没有新的实例或任何东西。如何使用类实现与创建常量并导出并立即使用它相同的功能?aclass
必须始终使用new
调用,并将创建一个新实例。您的
$
函数不创建对象-它不应该是类必须始终使用new
调用类
,并将创建一个新实例。
$
函数不创建对象-它不应该是类
类不是对象function@LawrenceCherone有没有一种方法可以使用类来实现这样的功能?我认为类更好,使代码更有条理。module.exports=(…args)=>newlibrary(…args);一门课不是一门课function@LawrenceCherone有没有一种方法可以使用类来实现这样的功能?我认为类更好,使代码更有条理。module.exports=(…args)=>newlibrary(…args);