単純な音楽プレイリスト (配列) に似た 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 */);
異なるオブジェクトとしてインスタンス化できるため、意味がありません。どんなアイデアでも大歓迎です!