Javascript 如何向声明为left=function()的函数传递参数

Javascript 如何向声明为left=function()的函数传递参数,javascript,function,parameters,prototype,Javascript,Function,Parameters,Prototype,如何将参数传递给声明为something=function(){}的函数 当用户按下退出按钮时,我想从html页面主体中删除主窗格 this.exitButton.onclick = function(this.mainPage){ document.body.removeChild(this.mainPane); }; 不起作用 如何执行此操作?此函数是不带函数名的函数。它只能使用一次,您可能不容易找到应该传递哪些参数 您可以创建另一个函数,如: 函数go(a

如何将参数传递给声明为something=function(){}的函数

当用户按下退出按钮时,我想从html页面主体中删除主窗格

    this.exitButton.onclick = function(this.mainPage){
        document.body.removeChild(this.mainPane);
    };
不起作用


如何执行此操作?

此函数是不带函数名的函数。它只能使用一次,您可能不容易找到应该传递哪些参数

您可以创建另一个函数,如:

函数go(a1){}

并像window.prototype.initInterface=go(a1)那样调用它


或者,您可以使用诸如getDocumentById(“DOM ID”)之类的函数在这个未命名函数中获取一些DOM参数等。

为您的
exitButton.onclick
函数访问您在信封
initInterface
函数中创建的变量,您希望通过返回执行所需操作的函数并传递该变量,在
exitButton.onclick
函数中创建闭包

exitButton.onclick = function () {
    return (function() {
         document.body.removeChild(mainPane);
    })(mainPane);
};
阅读有关闭包如何工作的更多信息,并查看一个工作实例

或者,忘记闭包,从触发事件的按钮向上遍历DOM到
mainPane

exitButton.onclick = function() {
   // in here "this" is the object that triggered the event, exitButton
   document.body.removeChild(this.parentNode);
}

另外,如果您在浏览器中执行此操作,
窗口.prototype
不存在<代码>窗口是浏览器脚本中原型链顶部的对象。您只需要
window.initInterface=function(){}
,这与
function initInterface(){}
完全相同,因为您在浏览器的javascript中所做的一切都成为
window
的属性?我不认为
window
是一个构造器…可能是重复的感谢,下面的工作:var self=this;this.exitButton.onclick=function(){document.body.removeChild(self.mainPane);};这是不对的。第一个
函数go(var a1){}
不是有效的JavaScript。其次,函数在调用时不需要名称来传递参数:
var foo=function(bar){…}
。困惑更多的是定义一个函数并调用它。在OP的代码中,他定义了一个函数,因此每个参数名称都必须遵循一定的规则,例如名称不能包含
。感谢您的更正!我的错误。我仍然建议使用一些名称可以重用的函数,更好地了解应该传递哪些参数。
exitButton.onclick = function() {
   // in here "this" is the object that triggered the event, exitButton
   document.body.removeChild(this.parentNode);
}