【发布时间】:2023-03-07 10:49:01
【问题描述】:
我有一个函数接受另一个函数作为参数。 外部函数是否可以在不知道内部函数做什么的情况下运行内部函数并避免它尝试对受保护范围内的任何变量进行任何更改。
注意:我所说的受保护,并不是指 Java、C++ 或 C# 中可用的受保护继承范围说明符。
示例:
假设我有一个函数处理器。
{
// processor is a function of an object which has input and output be parameters
function processor(functionToExecute)
{
this.output = functionToExecute(this.input);
}
}
现在我不知道 functionToExecute 会运行什么代码。
我在全局范围内几乎没有变量 a、b 或 c。 我不希望它们受到影响,也不希望从 functionToBeExecuted 调用全局范围内的任何其他函数。 我只是想让它接受参数并给出输出。
但不应产生影响其范围之外的任何事物的副作用。
理想情况下,我会从用户那里询问这个函数,并在服务器上运行它来处理用户想要的一段数据。
【问题讨论】:
-
您传入的函数已经具有不同的范围,您不会对外部函数进行任何更改...您可以发布一些代码,也许我不明白这个想法。 ..
-
受保护是什么意思?
-
现在检查。我添加了一个示例和我的意图。
-
您要查找的关键字是sandboxing
标签: javascript node.js