Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将函数名添加到处理程序单击?_Javascript_Dynamic - Fatal编程技术网

Javascript 如何将函数名添加到处理程序单击?

Javascript 如何将函数名添加到处理程序单击?,javascript,dynamic,Javascript,Dynamic,我有一个按钮,我有功能,应该执行点击 例如: <button id="button1">bla bla</button> <script> var justFunctionName = "function1"; var function1 = function() { alert("!"); } $("#button1").click(justFunctionName); </script> bla-bla var justFunction

我有一个按钮,我有功能,应该执行点击

例如:

<button id="button1">bla bla</button>

<script>
var justFunctionName = "function1";
var function1 = function()
{
alert("!");
}

$("#button1").click(justFunctionName);

</script>
bla-bla
var justFunctionName=“function1”;
var function1=函数()
{
警惕(“!”);
}
$(“#按钮1”)。单击(justFunctionName);
应该是

$("#button1").click(function1);
HTML

这是将字符串函数1分配给变量justFunctionName

如果要这样做:
console.log('justFunctionName')您将得到以下结果:

>功能1

因此,此变量分配与您希望实现的目标完全无关。您不是将变量分配给函数,而是将变量分配给分配给函数的变量


现在看看你在这里做什么:

var function1 = function () {
  alert("!");
};
这是将变量function1分配给执行警报的函数。在本例中,将变量视为函数的引用。为了让按钮触发警报,您需要调用对函数的引用(在本例中为function1):


为什么不直接调用
function1
?为什么要使用变量名呢?在实际代码中,我在一个属性中声明了这个函数。他希望能够只使用一个名称调用函数,code Maverick的答案似乎就是这样。例如,如果您需要根据属性调用某个函数,例如根据对象的类型调用ValidatePhone()或ValidateEmail(),而不是调用Validate()并使用开关大小写来确定要调用哪个函数,那么我可以看到它非常方便。
<button id="button1">bla bla</button>
var justFunctionName = "function1";

function function1()
{
    alert("!");
}

$("#button1").on("click", window[justFunctionName]);
var justFunctionName = "function1";
var function1 = function () {
  alert("!");
};
$("#button1").click(function1);