var Track = Backbone.Model.extend({ defaults : { title : "" } }) var TrackCollection = Backbone.Collection.extend({ model : Track, }) var Playlist = Backbone.Model.extend({ defaults : { name : "", tracks : new TrackCollection, } }) var PlaylistCollection = Backbone.Collection.extend({ model : Playlist, }) var playlists = new PlaylistCollection; // create and push the first playlist playlists.push({ name : "classic" }); // create and push a track in the playlist just created playlists.last().get("tracks").push({ title : "fur elise" }); // create and push the second playlist playlists.push({ name : "c2c" }); // create and push a track in the playlist just created playlists.last().get("tracks").push({ title : "fuya" }); // display first playlist console.log(JSON.stringify(playlists.at(0).toJSON())) // display second playlist console.log(JSON.stringify(playlists.at(1).toJSON())) {"name":"classic","tracks":[{"title":"fur elise"},{"title":"fuya"}]} {"name":"c2c","tracks":[{"title":"fur elise"},{"title":"fuya"}]} var Playlist = Backbone.Model.extend({ defaults : { name : "", tracks : new TrackCollection, } }); var Playlist = Backbone.Model.extend({ defaults : function() { return { name : "", tracks : new TrackCollection, }; } });