JS学习笔记——面向对象,设计模式
2013-05-17 14:53
603 查看
面向对象,设计模式相关概念:
JS中,只有函数具有作用域。定义在一个函数中的变量,在该函数内嵌的函数是可以访问的。
函数是运行在定义他们的作用域中,而不是运行在调用他们的作用域中。
定义类的三种基本模式
1.门户大开型,全部是共有的
2.下划线变量模式,从编程规范上区分了私有变量
3.采用闭包实现真正的私有属性和方法(缺点:每个实例都有一份属性和方法的拷贝,浪费内存,而且不利于继承)
继承的实现
JS中,只有函数具有作用域。定义在一个函数中的变量,在该函数内嵌的函数是可以访问的。
函数是运行在定义他们的作用域中,而不是运行在调用他们的作用域中。
定义类的三种基本模式
1.门户大开型,全部是共有的
2.下划线变量模式,从编程规范上区分了私有变量
3.采用闭包实现真正的私有属性和方法(缺点:每个实例都有一份属性和方法的拷贝,浪费内存,而且不利于继承)
function Book(name) { //定义私有的内部属性 var n; // 定义公有的访问接口 this.getName = function () { return n; } this.setName = function (newName) { if (checkName(newName)) { n = newName; } else { throw new Error("name format error"); } } //定义私有方法 function checkName(checkname) { if (checkname.length > 10) { return false; } return true; } //初始化内部属性 this.setName(name); } //所有实例都共享的方法 Book.prototype.display = function () { alert("display:" + this.getName()); } var b = new Book("wangjue"); alert(b.getName()); b.setName("fengfei"); alert(b.getName()); b.display();
继承的实现
// 类的继承 //定义父类 function SuperType(name1, sex1) { this.name = name1; this.sex = sex1; } SuperType.prototype.getName = function () { return this.name; } //定义子类 function SubType(name1,sex1,age1) { SuperType.call(this, name1, sex1);//调用父类的构造函数 this.age = age1;//子类新增的属性 } //将子类继承到父类 SubType.prototype = new SuperType(); SubType.prototype.constructor = SubType;//修改子类的构造器名称(构造函数) //拓展子类的方法,一定要放在继承的两行代码之后!! SubType.prototype.getAge=function(){ return this.age; } var s = new SubType("wang", "manle", 12); alert(s.getName() + s.getAge()); alert(SubType.prototype.constructor);
相关文章推荐
- (09)Java学习笔记——面向对象03——单例设计模式
- [设计模式学习笔记之一]面向对象是什么?
- 初了解JS设计模式,学习笔记
- js设计模式之迭代器模式学习笔记--封装简单的数组迭代器
- js-设计模式学习笔记-策略模式
- [设计模式学习笔记之一]面向对象是什么?
- 面向对象的设计模式的学习笔记,不断学习归纳总结ing
- js设计模式学习之面向对象的javascript(一)
- javascript学习笔记(九) js对象 设计模式
- [设计模式学习笔记一][面向对象七大设计原则]
- js设计模式学习之面向对象的javascript(三)--原型式继承
- 黑马程序员_学习笔记:3) 面向对象1:概述、封装、this、static、单例设计模式
- [设计模式学习笔记之一]面向对象是什么?
- js设计模式学习之面向对象的javascript(二)——接口
- 设计模式学习--面向对象的5条设计原则之开放封闭原则--OCP
- C#面向对象设计模式纵横谈 学习笔记22 State模式(行为型模式)
- 设计模式C++学习笔记之八(Adapter适配器模式)
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- 设计模式学习笔记--命令模式
- 阿Sam的设计模式学习笔记---- Builder模式