Javascript 带有传递参数onclick函数的函数创建按钮

Javascript 带有传递参数onclick函数的函数创建按钮,javascript,Javascript,有人能像我五岁一样解释一下为什么它在没有点击事件的情况下执行函数吗。以及如何修复它。谢谢 function test(){ alert("works"); } function createButton(name,location,id,funX){ var button = document.createElement("input"); button.type = "submit"; button.name = name; button.id = i

有人能像我五岁一样解释一下为什么它在没有点击事件的情况下执行函数吗。以及如何修复它。谢谢

function test(){
    alert("works");
}

function createButton(name,location,id,funX){
    var button = document.createElement("input");
    button.type = "submit";
    button.name = name;
    button.id = id;
    button.onclick = funX;
    var placeHolder = document.getElementById(location);
    placeHolder.appendChild(button);
};



window.onload = function () {
    createButton("Submit","content","submitEnd",test());
};

在函数中添加括号时,调用它。不是稍后,而是此时此地,然后返回函数返回的内容

默认情况下,javascript中的函数返回
未定义的
,除非您显式返回其他内容

你真正写的是

createButton("Submit", "content", "submitEnd", undefined);
最后一个未定义的
是因为您调用了函数,它与

var result = test(); // undefined

createButton("Submit", "content", "submitEnd", result);
解决方法是引用函数,而不是调用它

createButton("Submit", "content", "submitEnd", test);
看,没有括号


你应该考虑一下教育事业,生活中最好的事情是!