获取JavaScript函数的内容

Mys*_*Hed 2 html javascript function

我试图在JavaScript中创建一个可以设置onClickHTML按钮属性的函数.
所以,说我有这个作为我的功能:

function myFunc(action){
    document.getElementById('mybtn').setAttribute("onClick", action);
}
Run Code Online (Sandbox Code Playgroud)

这会将mybtn属性设置onClick为变量的内容action(应该是一个函数).

所以,如果我运行这样的函数:

myFunc(function(){
    alert("Hello, World!");
});
Run Code Online (Sandbox Code Playgroud)

然后变量action将设置为

function (){
    alert("Hello, World!");
}
Run Code Online (Sandbox Code Playgroud)

如果我myFunc如图所示运行,它将成功添加action按钮onClick属性的内容.唯一的问题是,如果我myFunc在运行后点击按钮,我只是得到一个错误.它说:
Uncaught SyntaxError:意外的令牌(

我认为这是因为在onClick属性中,你不能定义一个新的函数.
我怎样才能得到变量中函数内部的内容action

mar*_*tch 6

您可以添加事件侦听器,而不是像onclick那样更改onclick的属性:

function myFunc(action) {
  document.getElementById('mybtn').addEventListener('click', action);
}

myFunc(function() {
  alert('foo');
});
Run Code Online (Sandbox Code Playgroud)
<button id="mybtn">Foo</button>
Run Code Online (Sandbox Code Playgroud)