1

我对 JavaScript 非常陌生,所以请多多包涵!

例如,我想知道您是否将一个函数作为参数传递给 JavaScript 中的另一个函数(免责声明:代码可能不是 100% 正确,但您应该明白这一点!):

function(param1, param2) {

   ....
   // Do something with param 1
   param1 += 10;
   ....

   // Param 2 is a function, so call it
   param2();

   .....
}

这是潜在的安全风险,还是 JavaScript 中常见的编程方式?

谢谢。

4

2 回答 2

2

在 JavaScript 中,函数是一等公民。您可以将函数分配给var,将函数传递arguments给其他函数或return将函数作为另一个函数的结果。

JavaScript 中有许多方法可以接受函数作为参数(也称为回调函数)。一个这样的例子是 forEach

Array.prototype.forEach();

var elements = [42, 33, 45, 5];

elements.forEach(/*anonymous function*/function(element, index) {
// do something with element
});

elements.forEach(callback);

function callback(element, index) {
//do something with element
}
于 2013-05-21T09:29:03.537 回答
1

我可以说它在 js 中很常见,你可以在 apply 和 call 中看到用法

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/apply

call 和 apply 和有什么不一样?

但是如果函数(param2)从您不信任的用户或第三方传递给您两个,它可能会带来安全风险(例如,您向第三方提供一些服务器,如小部件)

于 2013-05-21T09:38:50.163 回答