是否有可能将相同的上下文应用于许多函数?

Is it possible to apply the same context to many functions?

本文关键字:应用于 许多 函数 上下文 有可能 是否      更新时间:2023-09-26

是否有方法将相同的'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);