Javascript 如何访问JS函数

Javascript 如何访问JS函数,javascript,ecmascript-6,Javascript,Ecmascript 6,我有html: <div id="test" onclick="test()">TEST</div> main.js文件包含一个函数: function test() { alert('Test'); } 但是当我点击测试块时,我得到一个错误: 未捕获类型错误:测试不是函数 请告诉我如何使用onclick属性正确访问函数?您需要使函数在全局上下文中可用,如下所示: window.test = function() { alert('Test'); }

我有html:

<div id="test" onclick="test()">TEST</div>
main.js文件包含一个函数:

function test() {
    alert('Test');
}
但是当我点击测试块时,我得到一个错误:

未捕获类型错误:测试不是函数


请告诉我如何使用onclick属性正确访问函数?

您需要使函数在全局上下文中可用,如下所示:

window.test = function() {
    alert('Test');
}

通过window属性公开全局作用域是可行的,但由于您在模块中拥有该函数,所以只需利用它即可。指令
import
export
one()一起使用:

app.js:

import { test } from "./main"
main.js:

export function test() {
    alert('Test');
}
我们得到了什么?测试函数不会污染全局范围。它是孤立的,但在
app.js
main.js
之间共享。然而,在您的例子中,您引用了HTML中的函数,这意味着寻址全局范围。因此,要使其成为“最佳实践”,您可以在app.js中执行以下操作:

document.querySelector("#test").addEventListener("click", test, false);
并删除HTML中的
onClick

document.querySelector("#test").addEventListener("click", test, false);