【问题标题】:extjs function parameters - why not being used?extjs 函数参数 - 为什么不被使用?
【发布时间】:2011-02-01 05:15:35
【问题描述】:

在 ext js 中,我遇到过这样的函数:

SearchWindow.WindowCloseButton.on('click',function(btn,e){
    SearchWindow.hide();
});

所以在点击关闭按钮时,窗口将被隐藏。但是,当函数内部没有使用这两个参数(btn,e)时,为什么函数需要它们呢?我是 Java 开发人员,我无法理解这种语法

【问题讨论】:

    标签: extjs


    【解决方案1】:

    它不需要 参数。这些是传递给函数的参数。您可以使用或不使用它们。如果您更喜欢此功能,则该功能将在没有它们的情况下工作:

    SearchWindow.WindowCloseButton.on('click',function(){
    SearchWindow.hide();
    });
    

    【讨论】:

    • 谢谢。那么关于何时传递参数的最佳做法是什么?
    • @Kaushik:好吧,不要在这里传递参数——它们是为你传递的。您可以将它们排除在函数定义之外(就像我展示的那样);但将它们留在其中可能是一个好习惯。这样,将来如果您决定向“单击”事件函数添加一些东西,它就是一种自我记录哪些参数可供您使用。您可能想在使用它们的函数中做一些事情。
    • 这是手写的一行代码。你能解释一下它们是如何“为你传递”的吗?开发者传递这个参数对吗?
    • 代码是手写的,但是当你说: on('click', function()...你的函数在用户点击 WindowCloseButton 时被调用。它被调用按钮和事件对象。您不会传入这些对象...它们是为您传入的...您所做的只是“单击”。
    • 这段代码是一个“事件处理程序”。通过写这篇文章,您已经说过:“请在用户单击此按钮时调用我的函数”。无需您做任何其他事情,按钮对象和事件 (e) 将被传递给此函数。如果你将它们包含在函数签名中,那么你可以在函数中使用它们——如果你把它们排除在外,你就不能。
    【解决方案2】:

    你不需要它们。它们是可选的。

    如果你打算使用它们,你只需要把它们放在那里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-25
      • 2015-08-04
      • 1970-01-01
      • 2011-06-24
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      相关资源
      最近更新 更多