您的位置:程序门 -> .net技术 -> c#



javascript学习笔记(二)javascript核心之类,构造函数和原型  


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


javascript学习笔记(二)javascript核心之类,构造函数和原型
发表于:2008-01-23 08:28:18 楼主
  javascript并不支持真实的类(像java,c#,c++),但是它可以通过构造函数和属性定义伪类.
  构造函数:通过构造函数来定义一个对象类,使用它的参数来初始化this关键字所引用的对象的属性.构造函数只是初始化了特定的对象,但并不返回这个对象.通过new   调用构造函数.
  原型对象和继承:javascript对象继承原型对象的所有属性.一个对象的原型是由创建并初始化该对象的构造函数定义的.javascript中的所有属性都有prototype属性,它引用了一个对象.看下面的例子.
//构造函数初始化不同实例的属性
function   rectangle(w,   h)   {
        this.width   =   w;
        this.height   =   h;
}
rectangle.prototype.area   =   function(   )   {   return   this.width   *   this.height;   }//原始对象保存方法并共享实例的其他属性
注意,继承是在查询一个属性值时自动发生的.每个类都有一个原型对象,这个原型对象都具有一套属性.他们可以通过for/in被列举出来并且可以用in操作符来测试.但是只能用object.hasownproperty()方法来区分,如:
var   r   =   new   rectangle(2,   3);
r.hasownproperty("width");       //   true:   width   是r的一个直接属性
r.hasownproperty("area");         //   false:   area是r的一个继承属性
"area"   in   r;       //true: "area"是r的一个属性
  读写继承属性:属性的继承只发生在读属性值时,而在写属性值时不会发生.下面通过一个例子说明:

  不仅是用户自定义类有原型对象,内置类如string和date也有原型对象,并且可以赋值给他们.如:
string.prototype.endswith   =   function(c)   {
        return   (c   ==   this.charat(this.length-1))
}//如果最后一个字符是"c"将返回true
var   message   =   "hello   world";
message.endswith('h')     //   returns   false
message.endswith('d')     //   returns   true
  javascript中的模拟类:默认情况下,任何对象属性都是实例属性,为了真实地模拟面向对象的程序设计语言,我们说javascript中的实例属性是那些在对象中用构造函数创建的或初始化地属性.实例方法和实例属性非常相似,只不过它是方法而不是数值.实例方法是由特定对象或实例调用的.在javascript中必须用this特别指明属性.
  类属性:在javascript中,number.max_value就是类属性的一个例子,因为属性max_value就是通过类number来存取的.由于每个类属性只有一个副本,所以本质上说来属性是全局变量.
  类方法:一个与类关联在一起的方法,而不是和类的实例关联在一起的方法.要调用类方法,必须使用类本身,而不能使用该类的特定实例.如date.parse()就是一个类方法.
  通用对象方法:tostring(),valueof(),compareto()
  超类和子类:object是所有内部类的超类,本章中使用的类都是object的直接子类.
  无继承扩展:    

发表于:2008-01-23 08:35:461楼 得分:0
jf
发表于:2008-01-23 09:17:112楼 得分:0
学习
发表于:2008-01-23 09:28:433楼 得分:0
学习
发表于:2008-01-23 09:36:394楼 得分:0
排队学习
发表于:2008-01-23 09:56:445楼 得分:0
student   ````
发表于:2008-01-23 09:57:476楼 得分:0
a         xie       cuo      


                                              study
发表于:2008-01-23 10:39:187楼 得分:0
学习


快速检索

最新资讯
热门点击