类的定义
类定义有三种基本方法,
1、创建并能返回特定类型的对象的函数(工厂函数),例如:function Co(){ var o = new Object; o.a = 1 return o}; 用这种方式创建对象: var o = Co()
2、创建构造函数,用new 实例化,例如 function Co(){this.a = 1} 用这种方式创建对象:var o = new Co()
3、原型方式,利用对象的prototype属性,例如 function Co(){}; Co.prototype.a = 1; 用这种方式创建对象: var o = new Co()
可灵活运用这三种方式进行组合
类的继承
类的继承有两种基本方法
1、对象冒充 基本原理: 构造函数使用this关键字给所有属性和方法赋值(构造函数实际上仅仅是赋值函数),所以可以利用一种方式,在类内部直接运行赋值函数,把其this关键字传递给新类。例如:
var a = function(){
this.a = 1;
this.b = 2;
alert(this);
}
var b = function(){
this.aa = a;//对a中的this进行转换,同样的方式还有
this.aa();
delete this.aa; //要把这个中间方法删除掉,否则可能会在以后的操作中覆盖原来类的方法
//或者
a.call(this,arg1,arg2);
//或者
a.apply(this,[args]);
}
var ob = new b();
var a = function(){
this.a = 1;
this.b = 2;
alert(this);
}
var b = function(){
this.aa = a;//对a中的this进行转换,同样的方式还有
this.aa();
delete this.aa; //要把这个中间方法删除掉,否则可能会在以后的操作中覆盖原来类的方法
//或者
a.call(this,arg1,arg2);
//或者
a.apply(this,[args]);
}
var ob = new b();
this.a = 1;
this.b = 2;
alert(this);
}
var b = function(){
this.aa = a;//对a中的this进行转换,同样的方式还有
this.aa();
delete this.aa; //要把这个中间方法删除掉,否则可能会在以后的操作中覆盖原来类的方法
//或者
a.call(this,arg1,arg2);
//或者
a.apply(this,[args]);
}
var ob = new b();
var a = function(){
this.a = 1;
this.b = 2;
alert(this);
}
var b = function(){
this.aa = a;//对a中的this进行转换,同样的方式还有
this.aa();
delete this.aa; //要把这个中间方法删除掉,否则可能会在以后的操作中覆盖原来类的方法
//或者
a.call(this,arg1,arg2);
//或者
a.apply(this,[args]);
}
var ob = new b();
2、原型链
基本原理:关于原型链,详见(http://www.javaeye.com/topic/53537)把超类的一个实例付给子类的prototype对象,即可把超类的固定属性和方法传递给子类,要注意一点,这种方法无法在实例化时传递参数,所以一般采用混合方式进行类的继承。
站长工具
相关文章

请稍等,评论加载中...