command (命令)模式
2014-07-17 20:36
183 查看
通过简单的command(命令)模式,理解apply, call, 作用域
carManager[name] && carManager[name].apply(carManager,[].slice.call(arguments,1));
先从[].slice.call(arguments,1);开始说起,[]空数组使用slice方法,call(作用域,参数)。等于arguments.slice(1);并将结果返回到[]空数组里面。最后结果得到数组['mini','1234']
接着是carManager[name].apply(carManager,['mini','1234']);apply(作用域,参数(数组));将carManager[name]的作用域设置为(对象carManager),再把参数穿进去
(function(){ var carManager = { requestInfo:function(model,id){ return 'the infomation for '+model+' with ' + id+' is in foobar'; }, buyVehicle:function(model,id){ return 'you hava successed buy '+model+' with ' + id+' '; }, arrangeViewing:function(){} }; carManager.execute = function(name){ return carManager[name] && carManager[name].apply(carManager,[].slice.call(arguments,1)); }; carManager.execute('requestInfo','mini','1234'); })();
carManager[name] && carManager[name].apply(carManager,[].slice.call(arguments,1));
先从[].slice.call(arguments,1);开始说起,[]空数组使用slice方法,call(作用域,参数)。等于arguments.slice(1);并将结果返回到[]空数组里面。最后结果得到数组['mini','1234']
接着是carManager[name].apply(carManager,['mini','1234']);apply(作用域,参数(数组));将carManager[name]的作用域设置为(对象carManager),再把参数穿进去
相关文章推荐
- .NET设计模式(17):命令模式(Command Pattern)
- 设计模式(18)-命令模式(Command)
- 设计模式学习笔记(十六)——Command命令
- 设计模式之命令(Command)---对象行为型模式
- DP-命令模式(Command Pattern)
- 命令(Command)模式
- 命令模式(Command)解析例子
- 设计模式 - Command Pattern(命令模式)
- 乐在其中设计模式(C#) - 命令模式(Command Pattern)
- (第Ⅳ部分 行为型模式篇) 第16章 命令模式(Command Pattern)
- Command命令(行为型模式)
- 设计模式与泡mm的关系之Command命令模式及再思考
- 设计模式之Command命令模式
- 命令(Command)模式
- 设计模式——行为型模式之 Command 命令模式
- .NET设计模式(17):命令模式(Command Pattern)
- 设计模式学习笔记(十七)——Command命令模式
- 设计模式之Command(命令)
- Java实用设计模式:Command(命令模式)
- 命令模式-Command Patern(转-吕震宇)