JavaScript的。如何在不调用函数的情况下使用单个参数?

时间:2016-10-29 15:33:12

标签: javascript function

我有一个问题,我觉得很难理解。

问题是关于JavaScript函数及其参数。

当我们编写一个函数时,我们可以从一个参数给出它,例如

function myCustomFunction(parameterOne, parameterTwo)

然后我们可以在调用函数时使用这些参数作为参数,例如

myFunction("hello", "World")

当我们调用该函数时,它将为我们提供值"hello""World"

然而,有一件事我看到很多人制作我并不真正理解,也就是说,有些人在编写函数时会传递参数(el)或({{ 1}})我知道它们代表元素或事件。他们正在使用函数中的参数而不调用函数,例如

e

当我们创建一个函数时,该参数的目的是什么?我能用它做些什么?

P.S请尽可能详细解释。

感谢。

2 个答案:

答案 0 :(得分:3)

你没有显示一个具体的例子,但听起来你正在谈论一个作为回调传递给另一个函数的函数。在这种情况下,您将声明一个将被其他代码调用的函数。您将该函数作为参数传递,然后,稍后,其他代码调用您的函数并将其传递给所需的参数。

以下是一个例子:

document.getElementById("test").addEventListener("click", function(e) {
   // this function is called by the browser when the click event occurs
   // the argument `e` is an event object passed by the browser
   console.log(e.target);
});
  

创建函数时该参数的用途是什么?   我能用它真正做些什么?

传递回调函数时,你必须知道"合同"适用于此API(通常通过一些文档)。该合约将描述在调用时将哪些参数传递给回调函数。对于上面的click事件侦听器,合同是传递给回调函数的第一个参数将是一个具有描述here属性的事件对象。当您声明回调时,然后使用与传递给回调的参数匹配的参数声明它。该特定API还将this指针设置为调度事件的对象(在上面的示例中,是单击的DOM对象)。

在像C ++这样的强类型语言中,编译器会强制您在回调函数上声明了正确的参数。在Javascript中,没有这样的强制执行,因此您可以为参数提供适当且有意义的名称,并将它们按正确的顺序排列,以使代码清晰并正常工作。请记住,回调函数的调用者(不是你)决定回调函数将获得什么参数。

答案 1 :(得分:3)

并非所有功能都由您手动调用。您还可以创建将传递给某些API的函数,这些函数将为您调用它。

例如,事件监听器:

element.addEventListener('click', function listener(e) {
  // Here you can access the event object in `e`
});

您没有调用listener功能。您只需创建它并告诉浏览器在用户单击时调用它。它将以事件对象作为参数调用,因此如果要使用它,则添加参数。