首页 > 解决方案 > 我可以使用父函数的参数来命名它的子函数吗?

问题描述

我有一个带有单个参数的父函数。
我想在命名几个子函数时使用这个参数。
这可以做到吗?

function A(red) {
    function redBall() {
        stuff
    }
    function redHat() {
        stuff
    }
}

这是我正在尝试创建的更具体的示例。
我会多次运行这个函数,这就是为什么我需要子函数根据提供的参数具有唯一的名称。

function name(parameter) {

    let parameterThis = '"' + parameter + 'This"';
    let parameterThat = '"' + parameter + 'That"';
    let $button = '$(".button.' + parameter + '")';

    function parameterEnter() {
        document.getElementById(parameterThis).style.opacity = "1";
        document.getElementById(parameterThat).style.display = "block";
    }

    function parameterLeave() {
        document.getElementById(parameterThis).style.opacity = "0";
        document.getElementById(parameterThat).style.display = "none";
    }

    $button.hover(parameterEnter,parameterLeave);
}

标签: javascriptjqueryparent-child

解决方案


TLDR:重命名函数并不是你真正想要的。

你不需要为你的函数命名不同的名字来工作。这不是编程应该如何工作的。相反,请尝试概括您要执行的操作,以便将其应用于您传入的任何内容。例如,如果您需要它在某些情况下执行不同的操作,请向函数添加另一个参数。或者,如果您需要为每个元素发生独特的事情,请让您的函数将进入/离开回调函数作为参数。即使您确实以编程方式设置了函数名称,无论如何您也很难调用它们,因为您不知道它们被调用了什么。


推荐阅读