是否有可能将相同的上下文应用于许多函数?
Is it possible to apply the same context to many functions?
是否有方法将相同的'this'上下文绑定到不同的函数?
var obj = {'a':1, 'b':2 };
init.call(obj);
function init()
{
func1.call(this);
func2.call(this);
func3.call(this);
etc...
}
首选的语法:
function init()
{
// each function should use this.
func1();
func2();
func3();
etc...
}
不是真正的问题本身,只是语法糖和DRY;提前谢谢。
编辑:感谢Barmar,我想出了这个:
[ func1, func2, etc... ].forEach( function(func){ func.call(this); }.bind(this));
你可以写一个函数来做这件事:
function callAll() {
var funcArray = Array.prototype.slice.call(arguments);
for (var i = 0; i < funcArray.length; i++) {
funcArray[i].call(this);
}
}
那么你可以这样做:
callAll.call(obj, func1, func2, func3);
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何将返回的值应用于多个不同位置的多个选择器
- ThreeJS将画布中的文本渲染为纹理,然后应用于平面
- 如何使jQuery中的悬停函数单独应用于数据库映像
- 如何将jquery函数仅应用于大屏幕
- 将jQuery事件应用于所有类元素
- 在将绑定应用于控制器之后,是否会发出Angular$scope事件
- 如何在ExtJs中获得将应用于给定类列表的样式
- 将 CSS 应用于禁用的输入按钮
- 如何从应用于正文的css中排除特定的表单
- jQuery+Android.将功能(Touchstart、touchmove)应用于实时加载的内容
- 将敲除绑定应用于模板,并将结果作为字符串获取
- 如何将Angular2管道应用于动态内容
- 动画功能不应用于每个元素
- 仅将JavaScript应用于部分代码(例如菜单)
- snap.svg:将函数应用于许多对象
- 如何使我的无限图像旋转器能够应用于许多旋转框
- 将相同的函数应用于许多元素(按顺序)
- jQuery代码应用于许多输入中,但我只希望它应用于(搜索框)的预期输入中
- 是否有可能将相同的上下文应用于许多函数?