gpt4 book ai didi

javascript - 传递一个方法来调用 Obj 作为 Param

转载 作者:行者123 更新时间:2023-12-02 13:58:57 25 4
gpt4 key购买 nike

我最初想问如何做到这一点,但似乎您可以传递方法名称,就像传递属性名称一样。但这是不好的做法吗?有什么理由不这样做呢?

  var actionsObj = {
writeSomething: function(){console.log('lol');}
}

function doSomeAction(writeSomething){
actionsObj[writeSomething]();
};

doSomeAction('writeSomething'); //executes writeSomething method of actionsObj

Plnkr

最佳答案

Is this bad practice though?

没有。

Any reason not to do it?

这取决于你需要什么。将“动词”传递给函数以从一组预设操作中进行选择是非常有限的,传递函数本身(“回调”)允许调用者传递任意代码。

因此,如果您想要限制可能的操作,或者如果一组有用的操作受到您的域要求的限制,那么这种模式就适合,无论如何,这并不重要,但在其他情况下,感觉是有点不灵活。

比较

function doSomeAction(actionName){
var actionsObj = {
writeSomething: function(x){ console.log(x); },

};
actionsObj[actionName]('lol');
}

doSomeAction('writeSomething');
doSomeAction('someOtherOption'); // restricted by the callee

function doSomeAction(action){
action('lol');
}

doSomeAction(function(x){ console.log(x); });
doSomeAction(anyOtherFunction); // chosen by the caller

主要区别在于代码中给出了可能的操作的位置。 doSomeAction 是否需要了解所有这些,它们每次都相同吗?

关于javascript - 传递一个方法来调用 Obj 作为 Param,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40509653/

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