我想创建一个类似于简单音乐播放列表(数组)的 js 类。我想用 ID 实例化这个播放列表,每个 ID 都是我数据库中的轨道 ID。我有这样的界面:
function Playlist() {
    Playlist.prototype.current = 0;
    Playlist.prototype.prev = function() {
        if (this.current-1 < 0) {
            return null;
        }
        return this[--this.current];
    };
    Playlist.prototype.next = function() {
        if (this.current+1 >= this.length) { // length is index + 1
            return null;
        }
        return this[++this.current];
    };
    Playlist.prototype.seek = function(id) {
        for (i in this) {
            if (this[i] == id) {
                this.current = parseInt(i);
                return i;
            }
        }
        return false;
    };
    Playlist.prototype.getCurrent() {
            return this.current;
    };
};
上面的代码没有做我想要的,因为我class认为它定义了它的方法,可以像这样实例化:
var newPlaylist = Playlist(2,3,5,10/* those are my ids */);
目前我发现的唯一方法是:
Playlist.prototype = new Array(2, 3, 5, 10/* those are my ids */);
这没有任何意义,因为它可以被实例化为不同的对象。任何想法都非常受欢迎!