js面向对象基础
2016-02-29 11:34
525 查看
工厂模式
function CreatePerson (name1,age1) { //创建对象 var obj=new Object(); //属性 obj.name=name1; obj.age=age1; //方法 obj.showName=function () { alert(this.name); } obj.showAge=function () { alert(this.age); } //对象的出厂 return obj; } var person1=CreatePerson('张三',22); var person2=CreatePerson('李四',23); person1.showName(); alert(person1.showName==person2.showName)//返回false;说明会占用大量资源;因此不使用。
混合模式(原型模式 + 构造函数模式)
//构造函数第一个字母习惯大写; function CreatePerson (name1,age1) { this.name=name1; this.age=age1; } //prototype大概相当于css样式里的class; CreatePerson.prototype.showName=function () { alert(this.name); } CreatePerson.prototype.showAge=function () { alert(this.age); } var person1=new CreatePerson('王五','25'); var person2=new CreatePerson('陆六','29'); person1.showName(); person2.showAge(); alert(person1.showName==person2.showName) //返回true,调用的方法一样,不会浪费资源。因此大部分使用它。
js继承
function A (name1) { this.name=name1; } A.prototype.showName=function () { alert(this.name); } var obj1=new A('shanks'); //obj1.showName(); //alert(obj1.name); function B (name2,age2) { A.call(this,name2);//属性继承 this.age=age2; } B.prototype.showAge=function () { alert(this.age); } //方法继承 for(var i in A.prototype){ B.prototype[i]=A.prototype[i]; } var obj2=new B('shanks2','33'); //alert(obj2.name); obj2.showName(); obj2.showAge();
相关文章推荐
- Lua编程示例(二):面向对象、metatable对表进行扩展
- C#中面向对象编程机制之多态学习笔记
- 浅谈Lua的面向对象特性
- Lua面向对象之类和继承浅析
- JavaScript面向对象的两种书写方法以及差别
- 浅谈c# 面向对象之类与对象
- C#面向对象特征的具体实现及作用详解
- C# 面向对象的基本原则
- 浅谈对c# 面向对象的理解
- Ruby面向对象编程详解
- php学习 面向对象 课件第1/2页
- PHP程序61条面向对象分析设计的经验小结
- 收集学习asp.net比较完整的面向对象开发流程
- javascript 面向对象编程 万物皆对象
- 不错的JavaScript面向对象的简单入门介绍第1/2页
- [推荐]javascript 面向对象技术基础教程
- javascript 面向对象的JavaScript类
- JavaScript中的面向对象介绍
- javascript实现面向对象类的功能书写技巧
- Javascript 面向对象 继承