我编写了以下函数作为我正在开发的 jQuery 插件的一部分:
$.fn.append2 = function(collection, callback) {
var $this = this;
$.each(collection, function(key, value) {
$this.append(callback ? callback(key, value) : value);
});
return this;
};
在测试了一个高度依赖的高度递归函数后.append2
,我优化.append2
为:
$.fn.append2 = function(collection, callback) {
var $this = this;
$.each(collection, callback
? function(key, value) { $this.append(callback(key,value)); }
: function(key, value) { $this.append(value); }
);
return this;
};
虽然这段代码在速度方面效率更高,但它仍然让我不满意。本质上,我已经两次定义了相同的函数:
function(key, value) { $this.append(callback(key,value)); }
function(key, value) { $this.append(value); }
我想知道是否有任何语言可以让我只定义一次函数:
function(key, value) { $this.append(value); }
然后通过将参数替换为$this.append
from value
to 对其进行操作callback(key, value)
。(而且,不,不是通过操纵字符串。通过操纵函数本身。)
有没有这样的编程语言?