将方法转换为函数
converting a method to a function
Javascript中是否有一个技巧,可以从方法创建普通函数?
具体来说,我想将 String.prototype.toLowerCase 方法转换为接受字符串的函数。
显而易见的解决方案是:
var toLowerCase = function(s) {
return s.toLowerCase();
}
但我想知道是否有更短的方法来实现这一目标。
您可以创建一个函数,将方法转换为函数:
var converter = function(method) {
return function(instance) {
return method.call(instance);
};
};
var toLowerCase = converter(String.prototype.toLowerCase);
如果要传递其他参数,则可以使用此版本:
var converter = function(method) {
return function() {
var args = Array.prototype.slice.call(arguments),
instance = args.shift()
return method.apply(instance, args);
};
};
例:
> var replace = converter(String.prototype.replace);
> replace("TEST", "T", "X");
"XESX"
相关文章:
- 如何在将Node异步函数转换为promise时使用Q库
- 如何分解jQuery"toggle”;函数转换为separate“;显示“;以及“;隐藏“;功能
- 将函数转换为jQuery插件
- jquery递归函数转换为非递归函数
- jQuery函数转换为MooTools
- 将javascript函数转换为jquery
- 将Window Onload函数转换为非阻塞
- 如何将下面的递归函数转换为纯函数
- 将jquery函数转换为js
- 如何将这个递归函数转换为迭代函数
- 将递归函数转换为异步 CPS 实现 (javascript)
- 通过在JavaScript中将函数转换为对象可以实现什么
- 从JavaScript函数转换为jQuery
- JS:将单参数函数转换为可链接函数
- 如何将此函数转换为 Angular 指令
- 从控制台中的工作函数转换为工作脚本.(请参阅编辑)
- 将图像的 onError 函数转换为返回函数
- jQuery:将每个函数转换为 for 循环
- 如何将 JavaScript forEach 循环/函数转换为 CoffeeScript
- Javascript 将声明为函数字典的函数转换为原型