问题
在如下这种情况下,尽管加上了type="module"
,可onclick
依旧找不到Function
函数,会报错为:onclick Function is not defined.
。(先保证路径没问题)
HTML
<html><head><script type="module" src="./JS/master.js"></script></head><body><button onclick="Function(123)">Button</button></body>
</html>
JS
function Function(a) {console.log(a);
}
分析
这是因为Function
函数的作用域仅在当前文件内,若想要跨文件调用,我们可以使用全局对象(注意不是全局变量):window.Function
。
语法很简单:
window.Function = function(a) {console.log(a);
}
(HTML中不需要改变)
当然,如果函数即想在HTML中被调用,又要在当前JS文件中被调用,也可以:
window.Function = function Function(a) {console.log(a);
}
(前后名称可以一样)
欢迎补充。