面向对象
备份指针
// 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属性)后还木有找到就报错
缺点: 类似于递归, 浪费性能. 所以建议尽量不要使用全局变量
引入闭包 : 用于保存局部变量. 但是不能乱用, 过多容易导致内存泄漏.
闭包的技术优点:
不污染全局空间!
内部所有的临时变量执行完毕都会释放不占内存。
可以保存全局数据。
更新复杂变量。
网友评论