美文网首页
面向对象闭包

面向对象闭包

作者: PySong | 来源:发表于2018-07-31 16:39 被阅读0次

    面向对象
    备份指针

    // this在事件指令中指向事件源

    // that称为备份指针

    var that = this;

    面向对象三大特性
    封装

    继承

    多态

    面向对象的使用
    容错处理

    var option = option || {};

    闭包
    当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。

    function A(){
    function B(){
    console.log("Hello XMG!");
    }
    return B;
    }
    var b = A();
    b();//Hello XMG!
    技法最大目的: 全局变量私有化

    闭包的最大用处有两个:

    可以读取函数内部的变量

    让这些变量的值始终保持在内存中。

    所有的全局变量都是Windows属性. 所以可以文件各个地方拿到

    !!!在函数内部的变量前面没有var用来声明就代表是全局变量

    函数嵌套的变量取值采用就近原则 :

    变量的查找过程(查找过程只能从内部向外)

    先在现作用域中查找(遍历)

    去父级-> 祖父级作用域查找

    直到找到全局变量(Window属性)后还木有找到就报错

    缺点: 类似于递归, 浪费性能. 所以建议尽量不要使用全局变量

    引入闭包 : 用于保存局部变量. 但是不能乱用, 过多容易导致内存泄漏.

    闭包的技术优点:
    不污染全局空间!

    内部所有的临时变量执行完毕都会释放不占内存。

    可以保存全局数据。

    更新复杂变量。

    相关文章

      网友评论

          本文标题:面向对象闭包

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