我不了解有关参数的JavaScript代码的某些部分。我在W3schools上找到了这个例子:
<!DOCTYPE html>
<html>
<body>
<a id="myAnchor" href="http://w3schools.com/">Go to W3Schools.com</a>
<p>The preventDefault() method will prevent the link above from following the URL.</p>
<script>
document.getElementById("myAnchor").addEventListener("click", function(event){
event.preventDefault()
});
</script>
</body>
</html>
我对函数内部的event
参数感到困惑。虽然event
参数没有成为参数,但是它没有任何值,但此代码有效。这怎么可能是空的&#34;参数与方法一起使用。为什么这段代码有效?我是JavaScript的新手,所以任何简单的答案都会受到赞赏。
答案 0 :(得分:0)
狭缝,
正在调用的功能&#34;点击&#34;事件是回复&#34;功能。一旦活动&#34;点击&#34;然后提出匿名&#34;回电&#34;功能是&#34;功能(事件){&#34;正在使用1参数立即调用,即&#34; event&#34;。为了确定匿名函数调用的参数,请参考文档。 找到参数后,您可以在此函数中使用和使用它们,例如add&#34; event.preventDefault();警报(&#39;测试&#39;)&#34;当你点击元素时,什么都不会发生,只有弹出窗口会出现&#34; test&#34;会出现。
不要犹豫,不要问任何问题,这样我就可以改善答案。只是试着在高层解释。
答案 1 :(得分:0)
此功能也称为回调。回调就是将一个函数作为参数传递给另一个函数时。
尝试测试此代码,然后点击页面上的任意位置:
window.addEventListener("click", click);
function click() {
console.log(arguments);
}
如果您打开控制台,则会看到[MouseEvent]
。特殊arguments
对象返回函数接收的所有参数。 click
函数只收到一个参数MouseEvent
,因为窗口方法addEventListener
向事件处理程序发送一个事件。
这是一个类似的例子:
init("abc", logArgs); //--> "abc"
init("abc", logDog); //--> "dog"
function logArgs(x) {
console.log(x);
}
function logDog(x) {
console.log("dog");
}
function init(x, callback) {
callback(x);
}
关于您的示例的令人困惑的部分是您可以向函数发送匿名函数。匿名函数是未命名的函数。使用上面的示例,您可以这样做:
init("abc", function(y) { //the y parameter comes from the init function
console.log(y); //"abc"
});
function init(x, callback) {
callback(x); //send the first argument to the anonymous function
}