我刚刚阅读了有关使用 HTML 导入进行组件封装的内容。
<link rel=import href="import.html">
文件import.html
将包括组件所需的一切。
但有一个大问题:import.html
中的 Javascript 函数和变量成为 window
的一部分命名空间,这意味着没有任何封装。
恰好具有同名函数的两个不同组件将发生冲突,并且其中一个函数将被覆盖。
HTML 导入是否提供以前不存在的任何形式的 javascript 封装?
示例:
main.html
<link rel=import href="import1.html">
<link rel=import href="import2.html">
<script>
console.log( moduleFunction() ) ; //`moduleFunction` can be called as if it was defined in the outter document
</script>
import1.html
<script>
function moduleFunction(){
return 'module1' ;
}
</script>
import2.html
<script>
function moduleFunction(){
return 'module2' ;
}
</script>
最佳答案
没有。但是,将所有内容包装在一个函数中或拥有一个将所有变量存储在 import.html
中的全局对象都可以。
关于javascript - HTML 导入是否提供任何形式的 Javascript 封装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46869893/