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

JavaScript。如何在不调用函数的情况下使用单个参数?,javascript,function,Javascript,Function,我有一个我觉得很难理解的问题 问题在于JavaScript函数及其参数 例如,当我们编写一个函数时,我们可以给它一个到多个参数 function myCustomFunction(parameterOne, parameterTwo) myFunction("hello", "World") el.className = "something" e.className = "somethingElse"; 然后我们可以在调用函数时使用这些参数作为参数,例如 function myCusto

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

问题在于JavaScript函数及其参数

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

function myCustomFunction(parameterOne, parameterTwo)
myFunction("hello", "World")
el.className = "something"
e.className = "somethingElse";
然后我们可以在调用函数时使用这些参数作为参数,例如

function myCustomFunction(parameterOne, parameterTwo)
myFunction("hello", "World")
el.className = "something"
e.className = "somethingElse";
当我们调用函数时,它会给我们值
“hello”
“World”

然而,有一件事我看到很多人都在做,我真的不明白,那就是,有些人在编写函数时,他们正在传递一个参数(
el
)或(
e
),我知道它们代表元素或事件。例如,他们在函数中使用参数而不调用函数

function myCustomFunction(parameterOne, parameterTwo)
myFunction("hello", "World")
el.className = "something"
e.className = "somethingElse";
当我们创建一个函数时,这个参数的用途是什么?我能用它做什么

请尽可能详细地解释


谢谢。

您没有显示具体的示例,但听起来您所说的函数是作为回调传递给另一个函数的。在本例中,您正在声明一个将由其他代码调用的函数。您将该函数作为参数传递,然后,稍后,其他代码调用您的函数并传递所需的参数

下面是一个例子:

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事件侦听器,约定是传递给回调函数的第一个参数将是具有所述属性的事件对象。当您声明回调时,您将使用与将传递给回调的参数匹配的参数来声明回调。该特定API还将
this
指针设置为调度事件的对象(在上面的示例中,是单击的DOM对象)


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

您没有给出具体的示例,但听起来像是在谈论一个作为回调传递给另一个函数的函数。在本例中,您正在声明一个将由其他代码调用的函数。您将该函数作为参数传递,然后,稍后,其他代码调用您的函数并传递所需的参数

下面是一个例子:

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事件侦听器,约定是传递给回调函数的第一个参数将是具有所述属性的事件对象。当您声明回调时,您将使用与将传递给回调的参数匹配的参数来声明回调。该特定API还将
this
指针设置为调度事件的对象(在上面的示例中,是单击的DOM对象)


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

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

例如,事件侦听器:

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

您不调用
侦听器
函数。您只需创建它,并告诉浏览器在用户单击时调用它。它将以事件对象作为参数调用,因此如果要使用它,请添加参数。

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

例如,事件侦听器:

element.addEventListener('click', function listener(e) {
  // Here you can access the event object in `e`
});
您不调用
侦听器
函数。您只需创建它,并告诉浏览器在用户单击时调用它。它将以事件对象作为参数调用,因此如果要使用它,可以添加参数