提问者:小点点

在脚本标记中使函数不是全局的


我只有一个函数内部脚本标签在我的HTML,将用于事件点击。 有没有可能使这个函数不在全局范围内?

<script type="text/javascript">
function myFunction(sender, args) {
}
</script>

共3个答案

匿名用户

您可以使用life,并仅在其中注册事件处理程序,类似于

(function () {
  function myFunction(sender, args) {}

  $(".your_button").on("click", function () {
    myFunction();
  });
})();

匿名用户

与iLife类似,在标记了这个[jquery]之后,可以将其全部打包到doc.ready中:

<script type="text/javascript">
  $(function() {

    function myFunction(sender, args) {
    }

    // example use:
    $(".button").click(function() { myFunction(this); });

  });
</script>

MyFunction将只能用于Doc.Ready的{}内的代码。

注意:如果在HTML中使用onclick=,它将无法找到非全局函数。

匿名用户

如果您使用let作为类的类型,并结合lambda(箭头)表达式,那么可能呢?


let myFunction = (sender, args) => {
}

查看以下内容:https://developer.mozilla.org/en-us/docs/web/javascript/reference/statements/let