为什么使用Function.prototype.bind.apply
Why Function.prototype.bind.apply?
我了解Function.prototype.bind.apply
是如何工作的。假设以下定义:
var Constructor = function(someArgument){
//constructor body here
};
var creator = function(ctor, args){
args.unshift(null); //or anything else to make 'bind' succeed
return new (Function.prototype.bind.apply(ctor, args));
};
var creator2 = function(ctor, args){
return new ctor(args);
};
var obj = creator(Constructor, ['someVar']);
var obj2 = creator2(Constructor, ['someVar']);
creator
和creator2
都有效,那么为什么人们会选择creator
而不是creator2
呢?
调用 creator2
会将args
数组作为单个数组参数传递给构造函数。
调用 creator
会将数组中的每个项目作为单独的参数传递(通过 apply
)。
相关文章:
- 直接在函数声明上使用function.prototype.bind
- Javascript:如何获取函数.apply()的键
- 另一个if(!$scope.$$phase)$scope$apply()szenario-需要帮助才能通关
- call()和apply()实际上是用来欺骗方法处理类似数组的对象的
- 显示&作为&在jsp中使用angularjs而不使用ng-bind-html
- 如何使jQuery的“bind”或“on”事件处理程序幂等
- Angular Apply已经在进行中
- 通过fn.apply或fn.bind将函数传递给setTimeout
- 函数式编程 - .bind.apply for curry function.
- 为什么bind()或apply()在这里不起作用,而call()起作用
- ECMAScript 5之前的Javascript-bind()/如何使用apply()或call()进行模拟
- o.bind.apply(arguments);
- 使用 Function.prototype.bind.apply(Obj, args) 将参数传递给对象,只传递第一个元
- 避免使用 .bind() 的 .call() 和 .apply()
- 为什么使用Function.prototype.bind.apply
- 有没有办法使用 .bind 或 .apply 为被调用的方法提供调用方法或循环的范围
- 如何正确地将 Function.apply.bind 应用于 Promise 的解析处理程序 then()
- 在下面的代码中function.apply.bind是如何工作的
- 在 JavaScript 示例中使用 bind、apply 或调用
- Javascript:call(),apply()而不是bind()方法