Перегрузка операторов в классах - PullRequest
0 голосов
/ 05 апреля 2020

пример:

class GameObjectList {
    #list;

    constructor() {

        /** @member {GameObject[]} */
        this.#list = [];
    }

    /**
     *  @param {GameObject} object
     *  @returns {boolean} true if added
     */
    push(object) {    
        if( !(object instanceof GameObject) )
            return false;

        for (var i = 0; i < this.#list.length; ++i) {
            if (this.#list[i] == object)
            {
                return false;
            }
        }
        this.#list.push(object);

        return true;
    }
}

Есть ли способ, которым оператор [], выполненный на GameObjectList, вернет n-й объект #list?

let list= new GameObjectList();
let objA = new GameObject();
let objB = new GameObject();
let objC = new GameObject();

list.push(objA);
list.push(objB);
list.push(objC);

list[1] // returns objB

Или, если это невозможно как лучше заменить его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...