javascript学习笔记(三)
一、面向对象的设计
1、工厂模式和构造函数模式
解决了代码重复性问题
2、原型模式
解决了示例对象的方法属性的共享问题,即所有实例共享一个方法(变量)属性
重点理解原型对象、原型的动态性(对原型对象的任何修改会反映到实例上)
3、构造函数模式和原型模式组合使用
4、动态原型模式
解决了创建多个实例对象时原型方法的多次初始化问题
5、寄生构造函数模式
6、稳妥构造函数模式
不同的模式有不同的应用场景
7、继承
原型链继承、对象冒充(call、apply)、组合使用
二、函数表达式
1、基本语法
函数声明(函数声明提升)、函数表达式(匿名函数)、(function(param){})(param)和function(){}()立即执行匿名函数
2、闭包
指有权访问另一个函数作用域中的变量的函数
3、内存泄漏
如果闭包的作用域链中保存一个Dom对象,那么该元素将无法被销毁,在不需要使用时,需手动将保存Dom对象的变量设为null
4、模仿会计作用域
(function(){//这里是块级作用域})(),这样避免全局变量的污染
5、私有变量
对自定义类型而言的私有变量和方法
函数的参数、局部变量和在函数内部定义的其他函数
6、静态私有变量
(function(){
var privateVariable = 10; //privateValiable即为MyObject的静态私有变量,这个类似于php中类的静态变量
function privateFunction(){ //privateFunction为MyObject的静态私有方法,这个类似于php中类的静态方法
return false;
};
MyObject = function(){};
MyObject.prototype.publicMethod = function(){ //将方法赋值给原型链,即所有MyObject对象共享了publicMethod方法,且内存中不会产生多个该方法
privateValiable++;
reutn privateFunction();
}
})()
7、模块模式
模块模式是为单例创建私有变量和特权方法
以上为上周学习js知识汇总,js函数式编程和面向对象设计个人感觉比较绕,需要多花些时间理解。本周计划学习和梳理Dom的基本知识要点,包括Dom扩展、Dom2和Dom3总共三章的学习

浙公网安备 33010602011771号