我刚刚阅读了有关使用 HTML 导入进行组件封装的内容。
<link rel=import href="import.html">
该文件import.html
将包含组件所需的所有内容。
但是,一个大问题:内部的 Javascript 函数和变量import.html
成为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>