簡體   English   中英

在JavaScript中的2D數組上創建方法

[英]Creating a method on a 2D array in JavaScript

我已經創建了一個2D數組,並通過我的代碼進行了很多交互,但是當我嘗試執行以下操作時:

worldmap[x][y].eventAct = function() { 
     State.updateState("WorldMap"); 
     console.log("Event called"); 
}

它不起作用,但是當我這樣做時:

worldmap[x].eventAct = function() { 
     State.updateState("WorldMap"); 
     console.log("Event called"); 
}

它可以工作,但是變得無用,因為我不知道事件發生的x和y坐標,我只知道x!

任何幫助,將不勝感激!

如果值worldmap都是原始值 ,那么他們根本無法容納性

var foo = 'bar';
foo.baz = 'qux';
console.log(foo.baz); // undefined

可以設置該屬性是因為可以將基元裝箱並將其視為對象。 但是,拳擊不會持續,因此此屬性立即丟失。

因此,您可以創建對象來容納值和方法:

worldmap[x][y] = {
    value: worldmap[x][y],

    eventAct: function() {
        State.updateState("WorldMap");
        console.log("Event called");
    }
};
console.log(worldmap[x][y].value);

或者,類似於您的第二個片段,您可以將方法附加到數組並接受缺少的索引作為參數:

worldmap[x].eventAct = function (y) {
    var value = this[y];

    State.updateState("WorldMap"); 
    console.log("Event called");
};

暫無
暫無

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

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