簡體   English   中英

如何訪問從JavaScript中的對象外部函數內部調用的數組

[英]How do I access an array that is called from inside a function outside of an object in JavaScript

我正在使用ES 6,並且有一個分配給這樣的對象的數組。

let myArray = [];

在對象的更下方,我將一個函數分配給了這樣的處理程序。

myFunction: doSomething

現在,在對象外部定義函數。

const doSomething = function(arg){}

所以我的問題是,當我嘗試向該外部函數內部的數組分配某些內容時,JavaScript不知道那是什么。

我不知道如何訪問對象內部的此全局數組。 因此,當我為該數組分配一個值時,會出現錯誤。

class myObject {
   var myArray = [],
   myFunction: doSomething,
}

const doSomething = function(arg) {
    let selected = $.map(this.select(), (item) => {
        this.myArray[this.dataItem(item).Id] = true;
    });
}

您為class myObject內容無效的語法。

您不能在這樣的類聲明中聲明諸如var myArray = []類的變量。 同樣, myFunction: doSomething,也不正確。 在MDN上查看正確的ES6 class語法。

如果要初始化對象的屬性,則可以使用this.myArray = []在構造函數中進行this.myArray = [] ,然后可以在任何方法內訪問this.myArray 這是一些有效的語法:

class myObject {
   constructor() {
       this.myArray = [];
   }

   myFunction(arg) {
       let selected = $.map(this.select(), (item) => {
           this.myArray[this.dataItem(item).Id] = true;
       });
   }
}

然后,將其用作:

var x = new myObject();
x.myFunction();

我還注意到方法myFunction假定還有其他方法dataItem()select()因此您也必須定義這些方法,此代碼才能工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM