码迷,mamicode.com
首页 > Web开发 > 详细

js(3)面向对象的程序设计

时间:2017-05-10 13:00:00      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:asc   on()   添加   特定   工厂   函数   操作符   概念   通过   

面向对象(OO)语言都有一个标志,就是都有类的概念,而通过类可以创建多个具有相同属性和方法的对象

一:进行创建对象

1,工厂模式:

工厂模式是使用函数来封装特定接口的创建对象胡细节,代码如下:

function  createPerson(name,age,job){
     var  o=new Object();
     o.name=name;
     o.age=age;
     o.job=job;
     o.sayName=function(){
     alert(this.name)  
      } 
     return o 
}
var Person1=createPerson("zhangningning",21,"doctor")

 缺点:没有解决对象识别的问题

2.构造函数模式:

通过创建自定义的构造函数,

代码如下:

function Person(name,age,job){
     this.name=name;
     this.age=age;
     this.sayname=function(){
                 alert(this.name)  
    }      
}
var person1=new  Person("zhangningning",21,"student")    

使用new操作符的过程:
(1),创建一个新对象

(2),将构造函数中的作用域赋给新对象

(3),执行构造函数中的代码

(4),返回新对象

缺点:会导致不同实例上的同名函数是不相同的

通过构造函数创建的实例中存在一个constructor属性,这个属性指向person

3,原型模式

每个函数都有一个原型属性,属性是一个指针,指向一个对象,对象包含由特定类型的所有实例共享的属性和方法

可以将方法添加到原型中,所有的实例就都会共享

可以通过对象实例访问保存在原型中的值,不能通对象实例重写原型中的值,如果在实例中添加一个属性,这个属性和原型对象中的属性同名,就会覆盖原型中的属性

 

js(3)面向对象的程序设计

标签:asc   on()   添加   特定   工厂   函数   操作符   概念   通过   

原文地址:http://www.cnblogs.com/qianduangaoshou/p/6835004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!