整合JavaScript模組
P粉745412116
P粉745412116 2023-09-09 21:45:59
0
1
481

在我的程式碼中,從一個導入的模組宣告了一個陣列。與該模組相關的函數是從第二個模組導入的。以下是我的程式碼的簡化版本:

第一個包含陣列的模組

let module1 = {}; module1.array = [10, 20, 30];

第二個包含函數的模組

var module2 = {}; module2.fct1 = () => { return array[0]; }; module2.fct2 = () => { return array[1]; }; module2.fct3 = () => { return array[2]; };

我想要將這兩個模組合併成一個實體:

module1.fct1 = module2.fct1; module1.fct2 = module2.fct2; module1.fct3 = module2.fct3;

module1現在包含了陣列和函數

{ array: [10, 20, 30], fct1: () => { return array[0]; }, fct2: () => { return array[1]; }, fct3: () => { return array[2]; } }

但是,當我呼叫函數時,陣列似乎不在函數的作用域內:

console.log (module1.fct1())

我得到了以下錯誤:

未捕獲的引用錯誤:數組未定義

如果我在同一個檔案中建立一個包含陣列和函數的單一模組,它可以工作。

我的問題是:在JavaScript中是否有一種方法可以合併兩個模組。我的最終目標是將合併後的模組傳遞給另一個函數。

這是一個JSFiddle連結:https://jsfiddle.net/Imabot/rxsfvgda/4/

P粉745412116
P粉745412116

全部回覆 (1)
P粉254077747

看起來你期望module2的部分是可以在任何其他(模組)物件上呼叫的方法,這些物件具有.array屬性。為此,你需要透過this.array存取數組,並且需要使用方法語法而不是箭頭函數:

var module2 = {}; module2.fct1 = function() { return this.array[0]; }; module2.fct2 = function() { return this.array[1]; }; module2.fct3 = function() { return this.array[2]; };

或更簡單的寫法:

var module2 = { fct1() { return this.array[0]; }, fct2() { return this.array[1]; }, fct3() { return this.array[2]; }, };
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!