Ext源码分析源码分析之Ext的继承模式解说——第一节、类的定义

标签:, , , , ,

将Ext的extend继承,我大不算费很大的口舌来解释,因为真的很难表达,什么原型啦,构造函数啦等等拗口的词汇反而不会帮助我们理解,最通俗易懂的莫过于例子了。下面的例子都是模仿Ext的写法来写的,非常正轨,都是本人精心斟酌过的,是一种非常好的设计模式,希望大家既然来看了,就耐心品味下,呵呵,欢迎留言交流

下面这个例子我不打算解释,请您自己思考下

  1. Crab = function(){
  2.     this.leg = 10;
  3. };
  4.  
  5. Crab.prototype.say = function(){alert('we hava '+this.leg+' legs')};
  6.  
  7. var crabObj = new Crab();
  8.  
  9. crabObj.say();//运行出来的结果就是 'we have 10 legs'

引出一种类似与面向对象的设计模式

  1. Crab = function(){//类的定义形式!!
  2.     this.leg = 10;//成员变量!!
  3.     //成员变量都写在这里
  4. };
  5.  
  6. Crab.prototype = {
  7.     say : function(){alert('we hava '+this.leg+' legs');}
  8.     //成员方法都写这里
  9. };
  10.  
  11. var crabObj = new Crab();
  12.  
  13. crabObj.say();

如果你以前玩过C++,那么一定非常熟悉了。这种类的定义方式是Ext的基础所在。
var crabObj = new Crab();其实执行了2个步骤!
第一:执行this.leg = 10,其结果就是crabObj.leg = 10
第二:将Crab.prototype这个对象给了crabObj,好比crabObj.say = Crab.prototype.say;
说白了,第一步交接成员变量,第二步交接成员方法。

还有些朋友喜欢这样定义类
function Crab(){
this.leg = 10;
}
当然也是可以的

好了,这就是Ext最最普通的类的定义方式了,请接着看第二节《一个简单的继承》




已经有7个留言

  1. Says @ 08-04-17 3:58 am

    不错不错,继续加油

  2. 匿名 Says @ 08-05-21 3:29 am

    资料很珍贵!

  3. thinking Says @ 08-05-31 3:32 pm

    楼主能抽点时间来讲讲插件的开发过程吗?官方的E文看起好累·!!

  4. crab Says @ 08-05-31 3:56 pm

    不明白你说的插件是什么意思?

  5. thinking Says @ 08-06-1 8:40 am

    Plugins 就是组件的扩展!!!http://extjs.com/learn/Tutorial:Writing_Ext_2_Plugins
    看了后有很多多地方不明白,比如哪些方法是必需的等等!!

  6. 匿名 Says @ 08-09-27 2:16 am

    amazing!!!
    继续关注

  7. 匿名 Says @ 08-11-27 10:09 am

    感谢楼主,我要转帖,请原谅!




留言