У меня есть 3 разных .js
файла, которые связаны между собой ключевыми словами import/export
.Каждый из файлов имеет свои специфические функции, такие как:
Init.js
: вызывает Event.js
и Touch.js
.Отправьте переменные в Event.js
.
Event.js
: получает переменные из Init.js
и регистрирует event
для каждого из элементов.
Touch.js
: распознает идентификатор event
из Event.js
и регистрирует его.
Проблема в конструкторефункция Touch.js
вообще не работает.Браузер не может получить к нему доступ.Он продолжает срабатывать undefined
, когда я пытаюсь записать в него локальные переменные с именами A
и B
.
Единственный возможный способ, который я нашел, - создать переменные из Init.js
, passих к Event.js
и снова к Touch.js
, как я сделал ниже.
Есть ли способы использовать локальные переменные своей собственной функции конструктора?
См. кодниже:
//============== Init.js ==============
'use strict';
import {Event} from './event.js';
import { proTouch } from './touch.js';
const slider = (function() {
class Slider {
constructor(elem) {
this.elem = document.querySelectorAll(elem);
this.C = false;
this.Event = new Event();
this.Event.register(this.elem, 'mouseenter', proTouch.start, this.C);
}
}
return {
initialize: new Slider('.box')
}
}());
//============== Event.js ==============
export class Event {
constructor() {
}
register(node, eventName, callback, flag) {
let bind = callback.bind(this);
node.forEach(cur => {
cur.addEventListener(eventName, (e) => bind(e, flag))
})
}
}
//============== Touch.js ==============
class Touch {
constructor() {
this.A = false;
this.B = true; // <-- I want to use this constructor function.
}
start(e, flag) {
console.log(e.type, this.A, this.B, flag); // <-- this.A and this.B fire undefined.
}
}
const proTouch = new Touch();
export { proTouch }