面向对象闭包

面向对象
备份指针

// 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属性)后还木有找到就报错

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

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

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

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

可以保存全局数据。

更新复杂变量。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 面向对象备份指针 // this在事件指令中指向事件源 // that称为备份指针 var that = this...
    PySong阅读 309评论 0 0
  • 变量的作用域 变量作用域指的是变量的作用范围,javascript 中的变量分为全局变量和局部变量; 1.全局变量...
    2simple阅读 115评论 0 0
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,841评论 2 9
  • (1)通过标签获取元素 do...while循环 定时器在javascript中的作用 1、制作动画2、异步操作3...
    Cyj___阅读 313评论 0 1
  • 2018年已经过去了四分之一,但我还是写下来——给自己,希望我能做到。 -少刷手机,下班回家后手机不带进卧室。因为...
    许呦呦阅读 241评论 0 1