1. 问题描述
有两个
js
文件定义了一个相同的变量,如果在同一个页面引入就会报错。
比如
a.js
定义了一个
observer
。
//隐藏动态加载的内容
function hideDom(){
//doSomething
}
let observer = new MutationObserver(hideDom);
observer.observe(document, { childList: true, subtree: true });
然后
b.js
也定义了一个
observer
。
//隐藏动态加载的内容
function hideDom(){
//doSomething
}
let observer = new MutationObserver(hideDom);
observer.observe(document, { childList: true, subtree: true });
这样,页面同时引入
a.js
和
b.js
,必然会报
observer
重复定义。
因为
let
不允许定义重复定义。
而
let
只会在一个作用域内起作用,也就是一个
{}
内部。
那么解决办法,也就只要限定作用域就好了。
2. 解决办法
使用
(function(){})();
可以解决上面的问题。
(function(){
//隐藏动态加载的内容
function hideDom(){
//doSomething
}
let observer = new MutationObserver(hideDom);
observer.observe(document, { childList: true, subtree: true });
})();
版权声明:本文为u014248473原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。