gpt4 book ai didi

javascript - 一个 JavaScript 函数调用其他几个函数

转载 作者:行者123 更新时间:2023-11-28 11:26:06 24 4
gpt4 key购买 nike

我知道 JavaScript 函数完全能够调用其他函数。我已经用过这个方法好几次了。

目前我正在编写一个脚本,该脚本将查找某个标记的 html 元素,并根据其类型添加一些文本。

function foo() {
dealWithH1();
dealWithH2();
dealWithH3();
etc...
}

我已经对这样的函数进行了一些搜索,但我似乎找不到一个明确的、一致的答案来判断这是否是一个好的做法。我喜欢这种方式,因为需要进行很多函数调用,并且它使其非常有组织性。我只是想在深入探讨之前确保这样做不会出现任何明显的问题。函数foo()没有任何用途,只能调用 onLoad然后调用所有这些其他函数。

这样可以吗,还是有更受鼓励的方法来完成此任务?

最佳答案

创建由函数组成的操作的伪 DSL 是完全合理的。

根据您对 dealWith... 函数功能的描述,我认为您可能想要更多地概括您的函数,例如:

function foo() {
tagInsert('h1', 'Text to append to h1 tag');
tagInsert('h2', 'Text to append to h2 tag');
tagInsert('h3', 'Text to append to h3 tag');
}

现在,函数的本质已经被提炼出来(将文本附加到指定类型的所有标签),并且函数的变量已经被参数化(标签的类型和文本)添加),您可以轻松地执行以下操作:

var tags = {
'h1': {
'en': 'Hello',
'es': 'Hola',
'sr@latin': 'Zdravo'
},
'h2': {
'en': 'Goodbye',
'es': 'Adios',
'sr@latin': 'Do vidjenja'
},
'h3': {
'en': 'Green',
'es'; 'Verde',
'sr@latin': 'Zelena'
}
};
function foo(locale) {
for(var tag in tags) {
tagInsert(tag, tags[tag][locale]);
}
}
当您将要执行的操作尽可能推迟到实际调用函数时,函数的可组合性会大大提高 - 然后您可以使用完全相同的函数,而不仅仅是附加一个固定的函数将文本集添加到标签,但可以使用用户喜欢使用的任何语言来执行此操作。

这种灵 active 当然可以达到荒谬的长度,你永远不会完成任何事情,但最好将你的函数视为集合运算符:你的函数的输入是什么(显式声明为变量或隐式声明)通过访问全局)以及执行什么操作来产生新的输出集?

如果与您正在处理的特定情况相比,以通用方式编写函数不需要太多额外的努力,那么就以这种方式编写它,并且每当您需要执行类似的操作时都可以重复使用该函数 Action 但具有不同的输入。

记住...

不要从表面上理解我的tagInsert定义,我对你实际想要做的事情几乎一无所知,也许这种概括并不真正合理。关键是,作为开发人员,应该更好地了解您想要完成的任务。

如果您关注Larry Wall's Virtues of a Programmer ,您应该尽量减少必须做的额外工作量,并且您的函数将达到适当程度的可组合性与复杂性。

函数调用函数是函数的全部要点——您可以避免一遍又一遍地重写它;仅仅将要执行的大量命令式操作声明划分为一系列函数并不是函数的重点。命令式代码中有哪些重复模式以及如何尽可能

关于javascript - 一个 JavaScript 函数调用其他几个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10902716/

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