我以前见过这个小代码片段,但从未真正花时间去思考它的作用。
var bind = Function.bind;
var call = Function.call;
var bindable = bind.bind(bind);
var callable = bindable(call);
我理解 .bind
和 .call
的概念和实践,但是创建 bindable< 的好处、优势或实际用途是什么
和 callbable
上面的函数?
下面是可绑定(bind)用例的上下文示例。
var bound = bindable(db.find, db).apply(null, arguments);
var findable = bindable(db.find, db);
var bound = findable.apply(null, arguments);
var bound = findable(1, 2, 3);
这个模式有什么用?
最佳答案
callable
是
bind.bind(call);
“执行”总结是 callable
函数让您可以将设计为在某些 prototype
对象上作为函数运行的函数创建一个接受用作 this
值的参数。
例如,考虑 Array 原型(prototype)上的 .slice()
方法。它通常用于将节点列表或 arguments
结构之类的东西转换为数组。这通常是这样完成的:
var args = [].slice.call(arguments, 0);
好吧,callable
函数让我们可以创建一个独立的函数,其工作方式与此类似:
var cslice = callable(Array.prototype.slice);
var args = cslice(arguments, 0);
现在,作为某种编程风格的基石,这是否有用,我不会说。
关于javascript - 可绑定(bind)和可调用模式的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25391594/