首页 > 代码库 > command (命令)模式
command (命令)模式
通过简单的command(命令)模式,理解apply, call, 作用域
(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),再把参数穿进去
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。