将Ext的extend继承,我大不算费很大的口舌来解释,因为真的很难表达,什么原型啦,构造函数啦等等拗口的词汇反而不会帮助我们理解,最通俗易懂的莫过于例子了。下面的例子都是模仿Ext的写法来写的,非常正轨,都是本人精心斟酌过的,是一种非常好的设计模式,希望大家既然来看了,就耐心品味下,呵呵,欢迎留言交流
下面这个例子我不打算解释,请您自己思考下
Crab = function(){
this.leg = 10;
};
Crab.prototype.say = function(){alert('we hava '+this.leg+' legs')};
var crabObj = new Crab();
crabObj.say();//运行出来的结果就是 'we have 10 legs'
引出一种类似与面向对象的设计模式
Crab = function(){//类的定义形式!!
this.leg = 10;//成员变量!!
//成员变量都写在这里
};
Crab.prototype = {
say : function(){alert('we hava '+this.leg+' legs');}
//成员方法都写这里
};
var crabObj = new Crab();
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最最普通的类的定义方式了,请接着看第二节《一个简单的继承》
下面这个例子我不打算解释,请您自己思考下
Crab = function(){
this.leg = 10;
};
Crab.prototype.say = function(){alert('we hava '+this.leg+' legs')};
var crabObj = new Crab();
crabObj.say();//运行出来的结果就是 'we have 10 legs'
引出一种类似与面向对象的设计模式
Crab = function(){//类的定义形式!!
this.leg = 10;//成员变量!!
//成员变量都写在这里
};
Crab.prototype = {
say : function(){alert('we hava '+this.leg+' legs');}
//成员方法都写这里
};
var crabObj = new Crab();
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最最普通的类的定义方式了,请接着看第二节《一个简单的继承》