Javascript - 多个文件中的字符串类方法?

标签 javascript class methods

是否可以拥有一个类并将其方法分布到多个文件中? 我的类(class)现在位于一个文件中,并且它变得很长,在开发过程中变得难以导航。

我想过扩展一个类,但那是建立在类之上的。并且多个扩展类之间不会相互通信,对吗?

因此主文件将具有构造函数,其他文件将具有其类的一个或几个方法。

最佳答案

您可以分配给原型(prototype)的属性,就像过去 function 一样。使用 s 代替 class es - 从其他文件导入函数,定义类后,分配属性:

// main.js
import method1 from './method1';
import method2 from './method2';
// or use require() syntax, depending on how your environment is set up
class Foo {
  constructor(name) {
    this.name = name;
    // ...
  }
}
Foo.prototype.method1 = method1;
Foo.prototype.method2 = method2;
// method1.js
export default function() {
  console.log('method1 running for ' + this.name);
};

两者method1method2仍然可以引用this引用实例,就像它们直接在 Foo 中定义为方法一样.

您可以使用import ES6 模块的语法(例如 <script type="module" )或模块 bundler 系统(如 Webpack)。在节点中,使用 require(path) 导入并通过分配给 module.exports 来导出或 module.exports 的属性.

关于Javascript - 多个文件中的字符串类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59713462/

相关文章:

javascript - AJAX 教程不工作

C++ 类函数如何存储私有(private)成员的值并将其写入数组?

python - 如何在 python 中打印/返回一个类?

javascript - 如何为 JavaScript 代码编写混淆器?

javascript - 如何解决屏幕触摸问题?

javascript - 如何使用 javascript 或任何其他合格的语言替换特定元素内的文本?

c++ - 具有可变数组大小的模板类 : initialize with array reference or brace-enclosed initializer list

java - Java中的finalize()方法什么时候被调用?

java - 如何将一种方法的结果作为另一种方法的参数

java - 从同一类中的另一个方法打印值