javascript中的事件不能自己执行一个函数吗?它们只是用来调用函数吗?

Can events in javascript not execute a function by themselves? Are they just used to call a function?

这里下面的代码不起作用

    <body>
          <div id="demo"></div>
          <input type="button" value="Click Here" onclick='()=>{document.getElementById("demo").innerText = "Hello World";}'>
          <script type="text/javascript"></script>
    </body>

但是当我创建函数并通过 onclick 事件调用它时,它起作用了

<body>
  <div id="demo"></div>
  <input type="button" value="Click Here" onclick='myFunction()'>
  <script type="text/javascript">
    function myFunction(){
      document.getElementById("demo").innerText = "Hello World";
    }
  </script>
</body>

我哪里做错了?

内部事件属性值表示函数的 主体

您的代码等同于:

function onclick() {
    ()=>{document.getElementById("demo").innerText = "Hello World";}
}

您已经定义了一个函数,该函数在被调用时(通过点击事件触发)定义了一个函数但没有调用它或在任何地方分配它。

与任何函数一样,您可以在函数体中放入您喜欢的任何语句。它们不需要是函数调用。

onclick='document.getElementById("demo").innerText = "Hello World";'

请注意,内在事件属性被认为是不好的做法(它们无法分离关注点,它们具有一些令人惊讶的范围含义,可能导致变量名冲突,并且它们会很快导致嵌套引号字符地狱)。改用 the addEventListener method