全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

javaScript中封装的各种写法示例(推荐)

前言

在javascript的世界里,写法是个神奇的现象,真是百家齐开放啊!每次看到老外写的js组件,思想和写法都怪异,就没看到一个js结构基本相同的代码出来。今天,我就来谈谈js写法,我在开发过程中,也写了几种。对于性能方面,如果代码结构或逻辑写的不好,会造成计算机CPU的运算加大,运行性能降低,js的写法对性能的影响也是至关重要的。

通常写js组件开发的,都会用到匿名函数的写法去封装一个对象,与外界形成一个闭包的作用域。(这里对于js的继承,多态,我就不多说了,高级程序员应该具备这些知识,如果您也做过java开发,这个概念太熟悉了。

主要对封装进行研究,因为前后台都会涉及到面向对象的概念,对于封装,怎么封装,封装的性能,等等很重要概念。封装(在程序世界是第一概念,我个人认为),全天下漫天遍野的封装,JQuery,EXT和Prototype.js封装的是javascript,jQuery uI和jQuery mobile封装着jQuery,java中的JDBC在spirng,Hibernate等框架封装着,在这里列举几个例子,还有很多种不一一介绍。

回到主题javaScript封装写法,先来看看一个简单的

function hello(){
  var a = 'hello';
  alert(a);
}

js函数是最原始,最基础的封装,懂js一目了然,如果你的页面不需要很多js交互操作,就可以用这种简单的方式,如果你喜欢用JQuery,则需要写成这样 

$(function(){
 $('#id').click(function(){
  alert('hello');
 })
});

如果用Node.js则比较复杂点,因为要Node.js要加载一个HTTP模块,写法如下     

var http = require('http');
http.createServer(function(req,res){
 res.writeHead(200,{'Content-Type':'text/html'});
 res.write('<p>hello</p>');
}).listen(8080);

再深层次封装写法,如果遇到大量使用js操作,单凭每个小的函数无法满足,因为它们存在一个公共的域中,写法多而散很容易造成了很多bug因素,需要规整。js创造者给我们提供了一个叫匿名函数,顾名思义,匿名函数就是没有实际名字的函数,它的格式很多种, !function(){}() , (function(){})() , (function(){}()) , new function(){} , void function(){}(); JQuery.js就是一个匿名函数封装,先看最常用的

 (function(){
  star.init = (function(name){
    var e = new Editor(name, Data.toolbarData);
   });
 })();

如果开发一些js组件的时候,可以先创建一个对象,给这个对象属性和方法,让这个对象能够单独操作和可以和其他对象合作         

 var klm = klm || {};

 klm = (function(){

    //第一个写法
    klm.init = function(){

     alert('hello');

    }

    //第二个写法
     klm.browser = (function(ua){
       var b = {
        msie:/msie/.test(ua) && !/opera/.test(ua),
        opera:/opera/.test(ua),
        safari:/webkit/.test(ua) && !/chrome/.test(ua),
        firefox:/firefox/.test(ua),
        chrome:/chrome/.test(ua)
       };
      })(window.navigator.userAgent.toLowerCase());

      //将其定义方法以接口方式返回给外界引用

      return{
        init: klm.init,
        browser:klm.browser 
      }

  })();

接下来这种js封装写法是我自己比较喜欢的    

 var myOpinion = myOpinion || {};
 myOpinion.prototype={
    init:function(obj,i){
       alert('hello');
     },
     closeWindow:function(obj,d){
      obj.click(function(){
       d.hide();
      });
     }
    }
    $(function(){
     var my = myOpinion.prototype;
     my.init($(".z-sidebar li em"),$("#contact"));    
     $("#contact").add(my.closeWindow($(".z-sidebar li em"),$("#contact")));

 });

这种方式先通过prototype继承方式把每一个小的操作封装成属性,init和closeWindow,然后可以进行初始化加载如my.init();也可以绑定到某个操作事件上如$("#contact").add(my.closeWindow());这些封装一气而成。

还有定义单个属性封装

 WinShow.create = function(c,body){  
      var _head = '<div class="+ c.heacss +"><span class="+ c.concss +">' + c.title + '</span></div>';
      this.container.innerHTML = _head;
      return this.container;
      this.container.onclick = function(e){

        alert('hello');

     }
 }

在这里我创建一个create属性以匿名函数形式封装一段HTML代码,并给这个 HTML代码绑定点击事件。

列举以上几种js封装形式,但是小生还在研究中,这几种都能实现相同操作,可是写法有些区别,对于性能方面谁有更好的见解可以点评我,进行交流。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对的支持。


# javascript封装函数  # js封装方法  # js封装技巧  # JS类的封装及实现代码  # 把jQuery的类、插件封装成seajs的模块的方法  # 封装属于自己的JS组件  # 基于jquery封装的一个js分页  # 一个封装js代码-----展开收起效果示例  # 几种  # 我就  # 绑定  # 创建一个  # 装着  # 漫天遍野  # 的是  # 加载  # 几个  # 是个  # 在这里  # 我在  # 还在  # 第一个  # 在这  # 不需要  # 说了  # 如有  # 都能  # 可以用 


相关文章: 网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何高效配置IIS服务器搭建网站?  网站制作话术技巧,网站推广做的好怎么话术?  如何在Windows服务器上快速搭建网站?  制作网站的公司有哪些,做一个公司网站要多少钱?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  如何选择建站程序?包含哪些必备功能与类型?  如何在云主机上快速搭建多站点网站?  建站之星后台管理系统如何操作?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  自助网站制作软件,个人如何自助建网站?  制作销售网站教学视频,销售网站有哪些?  如何做网站制作流程,*游戏网站怎么搭建?  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何通过建站之星自助学习解决操作问题?  香港服务器WordPress建站指南:SEO优化与高效部署策略  如何获取开源自助建站系统免费下载链接?  移民网站制作流程,怎么看加拿大移民官网?  建站主机选哪种环境更利于SEO优化?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  济南专业网站制作公司,济南信息工程学校怎么样?  魔方云NAT建站如何实现端口转发?  如何安全更换建站之星模板并保留数据?  建站之星备案是否影响网站上线时间?  韩国服务器如何优化跨境访问实现高效连接?  如何用好域名打造高点击率的自主建站?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  建站之星如何修改网站生成路径?  山东网站制作公司有哪些,山东大源集团官网?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  广州营销型建站服务商推荐:技术优势与SEO优化解析  建站主机选购指南:核心配置优化与品牌推荐方案  如何通过宝塔面板实现本地网站访问?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  如何获取上海专业网站定制建站电话?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  常州企业网站制作公司,全国继续教育网怎么登录?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  如何选择可靠的免备案建站服务器?  网站制作价目表怎么做,珍爱网婚介费用多少?  建站之星如何快速生成多端适配网站?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  香港网站服务器数量如何影响SEO优化效果?  开心动漫网站制作软件下载,十分开心动画为何停播?  完全自定义免费建站平台:主题模板在线生成一站式服务  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  建站之星会员如何解锁更多建站功能?  简历在线制作网站免费版,如何创建个人简历?  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何选择适合PHP云建站的开源框架? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。