Я устанавливаю модули JS для проекта, где я использую прототипы для OO-программирования (так как я не уверен, что среда поддерживает синтаксис класса ES6). Один модуль содержит «классы» для определенной цели, а другой модуль импортирует и использует их.
Я просмотрел всю документацию, которую смог найти о том, как правильно настроить наследование с помощью прототипов JS и как экспортировать и импортировать модули. Приведенный ниже пример кода иллюстрирует, к чему я иду.
MyModule.js:
function A(x, y) {
this.x = x;
this.y = y;
}
A.prototype.foo = function(bla) {
// ...
}
function B(x, y, z) {
A.call(this, x, y);
this.z = z;
}
B.prototype = Object.create(A.prototype);
B.prototype.constructor = B;
export { B };
MainModule.js:
import * as MyModule from "./MyModule.js"
var b;
function bar() {
b = new MyModule.B(1, 2, 3);
b.foo(4); // <-- error happens here
}
Когда я пытаюсь запустить bar
, b.foo
не определено. Переменные-члены (например, b.z
) работают нормально, но функции, добавленные в прототипы, не работают.
У кого-нибудь есть идеи? Заранее спасибо!