题目大了点,呵呵。不过我觉得蛮有意思的。

javascript相对与JAVA,C++是一种弱面向对象的语言,但是现在的编程的绝对大趋势是面向对象编程,万物皆对象,一个人,一个公司,一个国家,哪怕是一坨屎(嘿嘿),都可以说是一个对象。 而面向对象的基础就是 类。

我知道的2种类的设计模式:

1.构造函数+原形(prototype)

 1 //定义一个类class 
 2 function class(sample,…){  //构造函数 
 3    someProperty=sample;
 4    //其他属性
 5 } 
 6 
 7 //通过指定prototype对象来实现类的成员定义 
 8 class.prototype={ 
 9   someMethod:function(){ 
10     //方法代码 
11   }, 
12   …//其他方法 
13 } 

我个人是比较喜欢用这个模式的。

2.构造函数

 1 function class(sample,…){
 2         someProperty=sample;
 3         …//其他属性
 4         //如果_init未定义,构造函数将用原形方式继续定义对象的方法,_init设置为true
 5         //用来判断是否给原形赋予了任何方法,
 6         //内部的函数只创建并赋值一次
 7         if(typeof _init==”undefined”){
 8              class.prototype={
 9                  someMethod:function(){
10                          //方法代码 
11                                  }, 
12                       …//其他方法               
13         
14         }
15         _init=true;
16         };
17     }

      两种模式都类似于传统意义面向对象语言中类的实现,当new一个对象时,每个对象都拥有自己的属性,同时方法是函数的引用。 而且一个类,一个类中的方法不能实现太复杂的逻辑。一个方法一般来说就处理一个简单的逻辑。这个就需要我们对类,对方法进行抽象化,透过现象看本质,抽象化可以让一件复杂的事变的简单,而类是抽象化的实体。

Category: 前端

one responses

Leave a Reply

Your email address will not be published. Required fields are marked *

  1. Tugenhua says:

    讲的太粗燥了