大家都说写代码要优雅简洁,一直对apply不太了解,搜了下,找到这个有用的,
http://www.cnblogs.com/xiaohongwu/archive/2011/06/15/2081237.html
初步了解了点,希望大家给点更高端的。
针对这个问题,我根据《JavaScript高级程序设计》里面的介绍,加上自己的一点点理解,小节了一篇:http://mengkang.net/234.html
如果有不对的地方还请斧正啊,哈哈。
大家都说写代码要优雅简洁,一直对apply不太了解,搜了下,找到这个有用的,
http://www.cnblogs.com/xiaohongwu/archive/2011/06/15/2081237.html
初步了解了点,希望大家给点更高端的。
针对这个问题,我根据《JavaScript高级程序设计》里面的介绍,加上自己的一点点理解,小节了一篇:http://mengkang.net/234.html
如果有不对的地方还请斧正啊,哈哈。
你要用到一些Array或者String上的方法可能会用到apply。
var o = {'0': 'a', '1':'b', '2':'c', length: 3};
var result = Array.prototype.reduce.apply(o, [function(a, b){
return a+b;
}]); //result = 'abc'
在写 userscript 时,我这样用 console.log
function log() {
var message = Array.prototype.slice.call(arguments, 0);
console.log.apply(console, ['[my-prefix]'].concat(message));
}
log('a', 'b', 'c');
一般不会用到, 但是如果做框架什么的, 中间处理 this
引用时候可能遇到了,
看一下 CoffeeScript 编译出来的代码, 没有 .apply
真不到他们还能怎么办...
http://coffee-script.org/
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
正好最近有用到一句话,我厚脸皮地称之为集原生Function方法之大成。
背景是NodeJS中,接入某外部API的时候,有些参数是相对固定,应当在配置中的,例如IP地址,端口,secret等,另一些参数是运行时的,和用户有关或者不那么固定的,比如接口名字之类。就比如我们有
ip, port, secret, action, user
这样5个参数吧。 这时候我希望能在配置文件里配置好ip, port, secret,然后运行时再传action和user。行话叫currying首先我们有这么个基础的API
有这样一些环境配置
重点来了,我写了类似这样的代码
理解一下上面这句代码?想想
requestServer
怎么个用法?PS 因为题主问的是apply,所以这个例子和实际情况稍有不同,实际情况是因为
request
也是我写的,所以它的签名是request(remote = {ip, port, secret}, action, user)
,然后那句话是Function.prototype.bind.call(request, config)
。