gpt4 book ai didi

javascript - 是否可以将相同的上下文应用于许多函数?

转载 作者:行者123 更新时间:2023-12-03 10:02:09 24 4
gpt4 key购买 nike

有没有办法将相同的“this”上下文绑定(bind)到不同的函数?

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

关于javascript - 是否可以将相同的上下文应用于许多函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30539598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com