prototype的方式:
var A= Class.create();
A.prototype = {
fncSetFunction: function(){
},
//构造函数
//initArray : 参数数组
initialize: function(initArray) {
},
//登录
fncLogon:function(){
}
}
//继承
var B= Class.create();
Object.extend(B.prototype,A.prototype);
Object.extend(B.prototype,{
fncSetFunction: function(){
var list = .....;
return list;
},
initialize: function(initArray) {
try{
alert("initialize:B");
}catch(e){
loc_oLog.info(e,1,"initialize");
}
},
fncLogon: function(){
try{
alert("B");
}catch(e){
throw sys_clsException2(".......");
}
}
});
//与上面一样,和预想的一样。
var class1 = Class.create();
class1.prototype={
initialize:function(){},
func1:function(){
alert(1);
},
func3:function(){
alert(3);
}
}
var c2 = Class.create();
Object.extend(c2.prototype,class1.prototype);
Object.extend(c2.prototype,{
func1:function(){
alert("c2 1");
}
});
new class1().func1();//1
new class1().func3();//3
new c2().func1();//c2 1
new c2().func3();//3
var class1 = Class.create();
class1.prototype={
initialize:function(){},
func1:function(){
alert(1);
},
func3:function(){
alert(3);
}
}
function class2(){
this.func1=function(){
alert(1);
}
this.func2=function(){
alert(2);
}
this.func3=function(){
funcPrivate();
}
function funcPrivate(){
alert("Private");
}
}
var c2=Object.extend(class1,{//class1.prototype,{
func1:function(){
alert(2);
},
func2:function(){
alert(3);
}
});
new class2().func1();//1
new class2().func2();//2
new class2().func3();//Private
new c2.func1();//2
new c2.func2();//3
new class1().func1();//1 //如果写成class1.prototype 就会是 2
如果用到了class.prototype={}就要写initialize:function(){}这个方法。
继承时如果用了prototype创建类,继承时就要用class.prototype来继承,才会实现继承。