[英]How to use a variable of second constructor function in Node.js? (using import/export)
我有3個不同的.js
文件,這些文件之間通過import/export
關鍵字鏈接。 每個文件都有自己的特定功能,如下所示:
Init.js
:調用Event.js
和Touch.js
。 將變量發送到Event.js
。
Event.js
:從Init.js
接收變量, Init.js
event
注冊到每個元素。
Touch.js
:從Event.js
識別event
ID,然后將其記錄。
一個問題是Touch.js
的構造函數Touch.js
不起作用。 瀏覽器無法訪問它。 當我嘗試將其記錄為A
和B
的局部變量時,它始終保持undefined
狀態。
我發現的唯一可能的方法是從Init.js
創建變量,將它們傳遞給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 }
在Event
類中,您將回調綁定到this
。 這是錯誤的,因為在這種情況下, this
是Event
實例,並且不包含a
或b
變量。 刪除該行。
let bind = callback.bind(this);//Wrong. Delete this line.
發送回調時,您要將proTouch
綁定到start
方法。 因此,綁定在那里。
this.Event.register(this.elem, 'mouseenter', proTouch.start.bind(proTouch), this.C);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.