webpack не добавляет функцию прототипа к объекту из другого файла - PullRequest
0 голосов
/ 14 июля 2020

У меня есть файл, содержащий определение объекта, и в этом же файле у меня есть функция, которая является частью этого объекта, например:

export function ARScene(_callbacks) {

   this.callbacksObject = _callbacks;
   // more fancy code.. 
}

ARScene.prototype.changeCar = function() {
    //some fancy code here 
    this.loadHDCar(); // THIS LIKE GENERATES A ERROR. 
}

теперь у меня есть другой файл, содержащий другой метод это часть объекта с именем ARScene, например:

import { ARScene } from './arScene';

ARScene.prototype.loadHDCar = function() {
     //some more fancy code..
}

Что происходит, когда я создаю это с помощью webpack и запускаю его в браузере, я получаю сообщение об ошибке: this.loadHDCar(); is undefined I думаю, это происходит потому, что webpack не добавляет файл, если он не импортирован. Но как мне убедиться, что ARScene.prototype.loadHDCar добавлено к объекту в окончательном выводе?

Я полностью новичок ie в webpack и модулях. Я нашел ответы на stackoverflow по этому поводу, но у них был немного другой сценарий ios, чем у меня. Значит, их решения не сработали (или, может быть, я этого не понял).

Если требуется больше контекста или информации, дайте мне знать.

1 Ответ

0 голосов
/ 14 июля 2020

Как мне убедиться, что ARScene.prototype.loadHDCar добавлен к объекту в окончательном выводе?

Вы должны импортировать его в модуль arScene , и вам даже следует создать там метод прототипа (где вы определяете класс) для видимости.

export function loadHDCar() {
    … //some more fancy code
}
import { loadHDCar } from './loadHDCar';

export function ARScene(_callbacks) {
    …
}
ARScene.prototype.loadHDCar = loadHDCar;
ARScene.prototype.changeCar = function() {
    … // some fancy code here 
    this.loadHDCar();
};
...