JS高级——歌曲管理
2024-08-30 21:32:17
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>
最新文章
- P2V之后的磁盘扩容新思路
- vue的选项
- TYVJ P1008 传球游戏
- Sublime Text3快捷方式与使用技巧
- Android应用增量更新
- EntityFramework版本下载和更新
- WinSock IO模型 -- WSAEventSelect模型事件触发条件说明
- CentOS 6.5(64bit)安装GCC4.8.2+Qt5.2.1(替换GCC的链接库)
- Python多线程的threading Event
- 2017最新修复福运来完整运营中时时彩源码PC+手机版本功能齐全
- LeetCode 26. Remove Duplicates from Sorted Array (从有序序列里移除重复项)
- 【LCT】BZOJ3091 城市旅行
- VS和IIS的一些问题
- python练习题-day14
- time&;datetime
- Python入门学习指南--内附学习框架
- LOJ6036编码
- 愛與痛的邊緣--IPA--粤语
- jeecg中的一个上下文工具类获取request,session
- 【.netcore学习】.netcore添加到 supervisor 守护进程自启动报错
热门文章
- Hihocoder 1333 (splay)
- java 源码分析1 -String
- P1082||T1200 同余方程 codevs|| 洛谷
- log4j.properties的简单配置和使用
- Ubuntu 16.04安装PDF阅读器FoxitReader
- 关于static静态块的使用和static list的使用
- 最老程序猿创业开发实训1---Android应用架构之MVC
- 使用Tomcat的一些经验和心得
- iOS 打开扬声器以及插入耳机的操作
- LINKs: Xamarin.Forms + Prism