javascript优化--06模式(对象)

命名空间模式:

  • 优点:可以解决命名混乱和第三方冲突;
  • 缺点:长嵌套导致更长的查询时间;更多的字符;
  • 通用命名空间函数:

    var MYAPP = MYAPP || {};
    MYAPP.namespace = function (ns_string) {
        var parts = ns_string.split(‘.‘);
        parent = MYAPP;
    
        if(parts[0] === ‘MYAPP‘) {
            parts = parts.slice(1);
       }
       for(var  i = 0; i < parts.length; i++) {
          if(typeof parent[parts[i]] === ‘undefined‘) {
              parent[parts[i]]  = {};
          }
           parent = parent[parts[i]];
       }
       return parent;
    }
    var module2 = MYAPP.namespace(‘MYAPP.modules.module2‘);
  • 声明依赖关系:虽然已经进行了模块化命名,但再声明依赖能更优化

    如对于:MYAPP, MYAPP.util.Event, MYAPP.util.Dom;
    //在一个函数或模块顶部进行声明
    
    var  myFunc = function() {
       var event = MYAPP.util.Event;
       var dom = MYAPP.util.Dom;
    ................
    }
    

    解析局部变量的速度比解析全局变量快;

  • 私有属性和特权方法

    function Gadget() {
       var name = ‘iPod‘;
       this.getName = function () {
            return name;
       }
    }
    

    注意,如果私有属性设置是一个对象,且只读,那么不要将它直接返回,而是返回其浅复制后的副本;  

时间: 2024-11-20 09:28:09

javascript优化--06模式(对象)的相关文章

javascript优化--05模式

回调模式: 基本例子: var findNodes = function (callback) { ...................... if (typeof callback !== 'function') { callback = false; } ................ while(i) { i --; ............ if(callback) { callback(found) } ............ } } 回调方法是对象方法的时候: var find

javascript优化--09模式(代码复用)02

原型继承 ://现代无类继承模式 基本代码: var parent = { name : "Papa" } var child = object(parent); function object(o) { function F() {}; F.prototype = o; return new F(); } 选择继承的时候可以考虑,传入实例还是构造函数原型: var child = object(parent); var child = object(Parent.prototype)

JavaScript基础06——Math对象和日期对象

内置对象-Math: Math对象用于执行 数学任务,Math 不像 Date 和 String 那样是对象的类,因此没有构造函数Math().无需创建,直接把Math当成对象使用,就可以调用其所有的方法和属性. Math对象的静态属性: Math.E:常数e. Math.LN2:2 的自然对数. Math.LN10:10 的自然对数. Math.LOG2E:以 2 为底的e的对数. Math.LOG10E:以 10 为底的e的对数. Math.PI:常数π. Math.SQRT1_2:0.5

javascript优化--12模式(DOM和浏览器模式)

注意分离: 通过将CSS关闭来测试页面是否仍然可用,内容是否依然可读: 将JavaScript关闭来测试页面仍然可以执行正常功能:所有连接是否正常工作:所有的表单是否可以正常工作: 不使用内联处理器(onclick之类)和内联样式属性,因为这些不属于内容层: 使用语义上有意义的HTML元素: DOM脚本: DOM访问: //DOM访问的代价是昂贵的 避免在循环中使用DOM访问: 在可能的情况下使用selector API; 在HTML容器中重复使用时,缓存重复的次数: 将DOM引用分配给局部变量

前端网络、JavaScript优化以及开发小技巧

一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN缓存 通过构建工具Gulp,可以在开发的时候就将合并压缩的事情一起做掉. 之所以要做合并压缩是因为:HTTP 1.x不允许一个连接上的多个响应数据交错到达(多路复用),因而一个响应必须完全返回后,下一个响应才会开始传输. 也就是说即使客户端同时发送了两个请求,而且CSS资源先准备就绪,服务器也会先发

深入javascript——构造函数和原型对象

深入javascript——构造函数和原型对象 常用的几种对象创建模式 使用new关键字创建 最基础的对象创建方式,无非就是和其他多数语言一样说的一样:没对象,你new一个呀! var gf = new Object(); gf.name = "tangwei"; gf.bar = "c++"; gf.sayWhat = function() { console.log(this.name + "said:love you forever");

Javascript创建类和对象

现总结一下Javascript创建类和对象的几种方法: 1.原始的创建方法: 1 <script type="text/javascript"> 2 var person = new Object(); 3 person.name="Amy"; 4 person.sex="Woman"; 5 person.show=function(){ 6 document.write("name is: "+this.name

JavaScript享元模式

享元(flyweight----蝇量级)模式是一种用于性能优化的模式.享元模式的核心是运用共享技术来有效支持大量细粒度的对象.如果系统中因为创建了大量类似的对象而导致内存占用过高,享元模式就很有用了.在JavaScript中,浏览器特别是移动端的浏览器分配的内存并不算多,如何节省内存就成了一件非常有意义的事. 享元模式要求将对象的属性划分为内部状态与外部状态(在这里状态是指属性).享元模式的目标是尽量减少共享对象的数量.如何划分内部状态和外部状态,可以参考一下经验:            1.内

JavaScript实现策略模式

在开篇之前先分享今天看到的一句关于设计模式的话:将不变的部分和变化的部分隔开是每个设计模式的主题 请大家自行感受这句话的精髓所在,并且思考学习设计模式究竟能给我们编程带来什么样的东西,欢迎大家在文章下面评(chui)论(shui),分享自己的宝贵见解.好了,回到今天的正题,JavaScript实现策略模式. 什么是策略模式 定义一系列的算法,把它们一个个封装起来,并且使它们可以相互转换.讲人话就是:我想去旅游,那么我可以选择不同的方法(策略)去达到我的目的--旅游.比如说坐飞机,走路,甚至是小黄