美文网首页
性能优化与面向对象

性能优化与面向对象

作者: 形象代言人 | 来源:发表于2017-11-11 10:19 被阅读0次
    每一日你所付出的代价都比前一日高,因为你的生命又消短了一天,所以每一日你都要更积极。今天太宝贵,不应该为酸苦的忧虑和辛涩的悔恨所销蚀,抬起下巴,抓住今天,它不再回来。 Happy起来.jpg

    一、性能优化

    a.稳定
    b.扩展
    c.性能
    d.网络性能
    e.执行性能
    
    1、网络性能
    第三方工具
        Chrome      NetWork     
                需要经验支撑分析。
        Firefox     YSLow
            http://yslow.org/
            插件版
                必须先安装       Firebug
                进入YSLow官网
                点击Firefox
                点击Add to Firefox
                一定要在选项中把自动运行勾选
    
    a、网络性能优化
        1.减少http请求
            1个文件=一次连接+一次请求+一次等待+一次响应
            100个文件=100连接+100请求+100等待+100响应
                合并文件
        2.合并文件
            a).减少http请求
            b).让资源更小
                4KB一个单位,不足4KB按照4KB算
        3.压缩代码
            让文件更小
        4.使用CDN加速
        5.使用GZIP压缩
        6.使用DNS
        7.懒加载
        更多搜索:雅虎军规
    
    2、执行性能
        1.尽量不使用全局变量
        2.尽量少使用闭包
        3.减少DOM操作
        4.少使用定时器
        5.尽量使用正则操作字符串
        6.尽量不使用属性
        7.尽量使用CSS3
        8.减少DOM操作
        9.尽量不使用定时器
        10.尽量不使用属性
            var len = arr.length;
                for(var i=0;i<len;i++){
            }
    

    二、面向对象(OOP)

    不知道原理,但是不影响使用。
    
    1、对象由什么组成?
    属性——特征
    方法——行为
    a、什么是属性 
        变量和属性一样。
        属性是属于某个对象的。
        变量是自由的。
    b、什么是方法
        函数和方法一样。
        方法是属于某个对象的。
        函数是自由的。
    
    2、创建一个类
    (1)Person类
        function Person(name,age,gender){
            this.name = name;
            this.age = age;
            this.gender = gender;
        }
        Person.prototype.showName = function(){
            return this.name;
        };
        Person.prototype.showAge = function(){
            return this.age;
        };
        Person.prototype.showGender = function(){
            return this.gender;
        };
    
    3、this是什么?
        不看定义,只看调用,方法是谁的,this就是谁
        优先级
            高   
                new             Object
                定时器             window
                方法、事件       对象本身
                正常调用        window\undefind
            低
        只管一层、只看最后一次调用
    
    4、面向对象三大特性:
    封装      抽
    继承      子继承父.父类有的,子类一定有。子类有的,父类不一定有。父类改变,子类跟着变。
    多态      多种状态、多重继承
    继承
              属性
              方法
    
    Person  人类
        属性
            name age gender
        方法
            showName() showAge() showGender()
    Worker  工人类 
        属性
            name age gender job
        方法
            showName() showAge() showGender() showJob()
    
    
    矫正this指向
        fn.call(this指向谁,arg1,arg2....);
        或者
        fn.apply(this指向谁,[arg1,arg2,arg3...]);
    
    
    属性继承
        function 子类(a,b){
            父类.call(this,a,b);
            或者
            父类.apply(this,arguments);
        }
    方法继承
        a).
        子类.prototype = 父类.prototype;
        问题:
            子类的私有方法,父类也有。
            原因:
                引用。
        b).
        for(var key in 父类.prototype){
            子类.prototype[key] = 父类.prototype[key];
        }
        问题:
            子类的实例,不属于父类
        c).
        子类.prototpye = new 父类();
        瑕疵:
            子类实例.constructor 等于父类
        d).
        子类.prototype = new 父类();
        子类.prototype.constructor = 子类;
    

    相关文章

      网友评论

          本文标题:性能优化与面向对象

          本文链接:https://www.haomeiwen.com/subject/ihcimxtx.html