1、将歌曲管理的CURD方法放到原型中

2、在构造函数中,我们只有一个属性是songList,因为音乐库不是共有的,如果将songList放入原型中,任何一个人的一次修改songList,都将把songList改变,下一个人new出来的songList就会不一样

3、将CRUD方法放入原型中,好处很多,避免浪费命名污染,避免不必要内存浪费

4、注意当前对象的方法,在调用当前对象的其他方法需要使用this,这个this指代的是当前对象

<script>
function SongManager(){
this.songList = null;
} //在当前对象的方法中,调用当前对象的其他方法,需要使用this
//例如 在 removeSong方法中调用 selectSong this.selectSong
SongManager.prototype = {
init:function (songList) {
this.songList = songList;
}, addSong: function (song){
this.songList.push(song);
}, removeSong:function (songName){
var song = this.selectSong(songName);
if(song == null){
throw "您要删除的歌曲不存在!请重新尝试";
}
var index = this.songList.indexOf(song);
this.songList.splice(index, 1);
}, updateSong: function (songName, singer) {
var song = this.selectSong(songName);
if(song == null){
throw "您要修改的歌曲不存在!请重新尝试";
}
song.singer = singer;
}, selectSong: function (songName) {
for (var k = 0; k < this.songList.length; k++) {
var song = this.songList[k];
if(song.songName == songName){
return song;
}
}
return null;
}
}; var pwbDEManager = new SongManager();
pwbDEManager.init([
{
songName:"青藏高原",
singer:"潘文斌"
},
{
songName:"我的换板鞋,摩擦摩擦最时尚",
singer:"约翰逊,庞麦郎"
}
]);
pwbDEManager.addSong({
songName:"东风破",
singer:"Jay Chou"
}) var gjbDEManager = new SongManager();
gjbDEManager.init([
{
songName:"两只老虎",
singer:"高金彪"
},
{
songName:"粉刷匠",
singer:"高金彪"
}
]);
// gjbDEManager.removeSong("李白");
gjbDEManager.removeSong("两只老虎");
console.log(pwbDEManager.songList);
console.log(gjbDEManager.songList);
</script>

最新文章

  1. P2V之后的磁盘扩容新思路
  2. vue的选项
  3. TYVJ P1008 传球游戏
  4. Sublime Text3快捷方式与使用技巧
  5. Android应用增量更新
  6. EntityFramework版本下载和更新
  7. WinSock IO模型 -- WSAEventSelect模型事件触发条件说明
  8. CentOS 6.5(64bit)安装GCC4.8.2+Qt5.2.1(替换GCC的链接库)
  9. Python多线程的threading Event
  10. 2017最新修复福运来完整运营中时时彩源码PC+手机版本功能齐全
  11. LeetCode 26. Remove Duplicates from Sorted Array (从有序序列里移除重复项)
  12. 【LCT】BZOJ3091 城市旅行
  13. VS和IIS的一些问题
  14. python练习题-day14
  15. time&amp;datetime
  16. Python入门学习指南--内附学习框架
  17. LOJ6036编码
  18. 愛與痛的邊緣--IPA--粤语
  19. jeecg中的一个上下文工具类获取request,session
  20. 【.netcore学习】.netcore添加到 supervisor 守护进程自启动报错

热门文章

  1. Hihocoder 1333 (splay)
  2. java 源码分析1 -String
  3. P1082||T1200 同余方程 codevs|| 洛谷
  4. log4j.properties的简单配置和使用
  5. Ubuntu 16.04安装PDF阅读器FoxitReader
  6. 关于static静态块的使用和static list的使用
  7. 最老程序猿创业开发实训1---Android应用架构之MVC
  8. 使用Tomcat的一些经验和心得
  9. iOS 打开扬声器以及插入耳机的操作
  10. LINKs: Xamarin.Forms + Prism