JavaScript 命名空间封装模式实战示例

作者:异步漫步

时间:2026-10-29

浏览:493

本文通过具体代码实例,详细解析了JavaScript中命名空间的写法。文章展示了如何利用对象封装隐藏与显示功能,并结合CSS实现简单的Tab切换效果。通过模块化组织代码,有效避免全局变量污染,提升前端项目的可维护性与扩展性,适合希望强化面向对象基础的前端开发者参考。

文章目录

JavaScript命名空间封装概述

本文通过具体代码实例,深入分析了JavaScript中命名空间的实现方式。以下内容旨在为读者提供清晰的参考与借鉴。

尽管这种写法早已存在,但由于部分开发者对面向对象的基础掌握不够扎实,往往选择回避。然而,在构建大型全站应用时,掌握这种模块化管理方法显得尤为必要。

HTML结构与CSS样式实现

HTML结构部分如下所示:


<div id="div1">111</div>
<div id="div2">现实</div>
<div id="div3">层</div>
<div class="tab">
  <ul class="tab_nav clearfix">
   <li class="active">1</li>
   <li>2</li>
   <li>3</li>
  </ul>
  <div class="tab_main">
   <div style="display: block">内容1</div>
   <div>内容2</div>
   <div>内容3</div>
  </div>
</div>

配套的CSS样式定义如下:


#div1{width: 100px;height: 100px;background: #ccc;}
#div2{width:100px;height: 20px;background: red;}
#div3{width: 300px;height: 200px;border: 1px solid #ccc;position: absolute;;margin-left: -150px;margin-top:-100px;left:50%;top: 50%;display: none;}
li{width: 100px;float: left;background: #ccc;}
.active{background: red;}
.tab_main{display: none;}
.clearfix:after{clear: both;display: table;content:'';}
.cleafix{zoom:1;}

命名空间JS代码详解

核心JavaScript逻辑代码如下:


var namespace={
 int:function(){
  this.hide.hideFun();
  this.show.showFun();
  this.tab.tabFun();
 }
};
namespace.hide={
 hideBtn:$('#div1'),
 hideFun:function() {
  var that=this;
  var a=this.hideBtn;
  a.click(function() {
   $(this).hide();
  });
 }
};
namespace.show={
 showBtn:$('#div2'),
 showBox:$('#div3'),
 showFun:function(){
  var that=this;
  var a=this.showBtn;
  var b=this.showBox;
  a.click(function(event) {
   b.show();
  });
 }
}
namespace.tab={
 tabBtn:$('.tab_nav li'),
 tabCon:$('.tab_main div'),
 tabFun:function(){
  var that=this;
  var a=this.tabBtn;
  var b=this.tabCon;
  a.click(function() {
   $(this).addClass('active').siblings().removeClass('active');
   b.eq($(this).index()).show().siblings().hide();
  });
 }
}
namespace.int();

希望上述关于JavaScript程序设计的内容能对各位读者有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章