<h1>js组合模式及更强大的宏命令</h1>
<p>案例:1.打开空调;2.打开电视和音响;3.关门、开电脑、登录QQ</p>
<button id="button">按我</button>
<script>
var MacroCommand = function(){
return {
commandList: [],
add: function( command ){
this.commandList.push( command );
},
execute: function(){
for( var i = 0, command; command = this.commandList[ i++ ]; ){
command.execute();
}
}
}
};
var openAcCommand = {
execute: function(){
console.log( "打开空调" );
}
};
/*电视和音响是同时打开的 */
var openTvCommand = {
execute: function(){
console.log( "打开电视")
}
};
var openSoundCommand = {
execute: function(){
console.log( "打开音响");
}
};
var marcoCommand1 = MacroCommand();
marcoCommand1.add( openTvCommand );
marcoCommand1.add( openSoundCommand );
/*关门、打开电脑和打开登录QQ的命令*/
var closeDoorCommand = {
execute: function(){
console.log( "关门" );
}
};
var openPcCommand = {
execute: function(){
console.log( "开电脑" );
}
};
var openQQCommand = {
execute: function(){
console.log( "登录QQ" );
}
};
var marcoCommand2 = MacroCommand();
marcoCommand2.add( closeDoorCommand );
marcoCommand2.add( openPcCommand );
marcoCommand2.add( openQQCommand );
/*现在把所有的命令组合成一个“超级命令”*/
var marcoCommand = MacroCommand();
marcoCommand.add( openAcCommand );
marcoCommand.add( marcoCommand1 );
marcoCommand.add( marcoCommand2 );
/*最后给遥控器“绑定超级命令” */
var setCommand = ( function( command ){
document.getElementById( "button" ).onclick = function(){
command.execute();
}
}( marcoCommand ) )
</script>
js组合模式及更强大的宏命令
最新推荐文章于 2024-09-04 10:35:17 发布