首页 > 解决方案 > 类中的重载运算符

问题描述

例子:

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

或者,如果不可能的话,替换它的最佳做法是什么?

标签: javascriptecmascript-2016

解决方案


推荐阅读