這裏是我的javascript代碼:是相同的變量多次聲明一個很好的做法
(function(){
"use strict";
document.addEventListener("DOMContentLoaded",animations); /*on content loaded */
function animations() {
/*start of animation for the toggle navigation button in smaller view ports*/
(function() {
var button = document.getElementById('nav-icon');
button.addEventListener('click', function(){
if (this.classList.contains('active')===true) {
this.classList.remove('active');
}
else {
this.classList.add('active');
}
})
})(); /*End of the toggle navigation animation*/
/*Start of scrolling side navigation for smaller view ports*/
(function(){
var button = document.getElementById('nav-icon');
var body = document.querySelector('body');
button.addEventListener('click', function(){
if (this.classList.contains('active')===true) {
body.classList.add('active-nav');
}
else {
body.classList.remove('active-nav');
}
});
})(); /*End of scrolling side navigation*/
(function() {
// body...
var media = window.matchMedia("(min-width: 992px)");
var body = document.querySelector('body');
var button = document.getElementById('nav-icon');
window.addEventListener('resize',function(){
if (media.matches) {
body.classList.remove('active-nav');
if (button.classList.contains('active')===true) {
button.classList.remove('active');
}
}
});
})();
};
})();
正如你可以看到我已經宣稱具有完全相同的值多次在我的代碼變量,但他們在不同的功能。每個iife都是一個單獨的動畫,並且具有不同的功能,儘管它們可能會共享相同的元素。但是,我想知道這是否是一種好的做法。我應該在主函數中聲明公共變量,以便它們可以位於所有子函數的執行上下文中?另外,請突出顯示任何看起來不太好或不太好的做法。謝謝
這不是壞習慣,但是,例如'var body = document.querySelector('body');'可以簡單寫成'var body = document.body;' –
不知道那個謝謝! –