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>
JS高级——歌曲管理
原文地址:https://www.cnblogs.com/wuqiuxue/p/8340902.html