繁体   English   中英

是否可以将相同的上下文应用于许多功能?

[英]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。 提前致谢。

编辑:感谢巴尔马尔,我想出了这个:

[ 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM