首页 > 解决方案 > 我怎么能把一个javascript类分成几个文件?

问题描述

例如,假设有一个文件包含一个类。

// a.js -> constructor, function1, function2
const AClass = class {
    constructor() {}
    function1() {}
    function2() {}
}

当 function1 和 function2 变得太长时,我想将它们分开到另一个文件中。

// a.js -> constructor
// b.js -> function1
// c.js -> function2

我可以在 JavaScript 中执行此操作吗?我不想像下面那样做。

// a.js
const fn1 = require("./b.js");
const AClass = class {
    constructor() {}
    function1() {fn1()}
}

标签: javascriptnode.jsclass

解决方案


你可以使用JS Prototype 的 chain。基本上拥有尽可能多的文件,只需使用extend并拥有一个带有function1and的 mixins 文件function2,但这确实效率低下。

此外,您可以只使用原型链并随时向其中添加函数,例如:

class A {
    say() {console.log("hey!")}
}

var foo = new A
foo.say() // hey!

A.prototype.yell = function(con) {console.info(con)}

foo.yell("hmmm...") // hmmm...

您可以在任何您想要的文件中执行此操作。


推荐阅读