日期:2014-05-16  浏览次数:20393 次

JS对Java类的操作
/** obsolete syntax **/    
var Person = Class.create();    //通过Class.create方法创建空类   
Person.prototype = {               //把方法定义到prototype中,注意,是通过initalize方法初始化类的属性   
  initialize: function(name) {    
    this.name = name;    
  },    
  say: function(message) {    
    return this.name + ': ' + message;    
  }    
};    
  
var guy = new Person('Miro');    
guy.say('hi');    
// -> "Miro: hi"    
                                            //prototype中的继承方式:   
var Pirate = Class.create();    //建立空类;   
// inherit from Person class:    
Pirate.prototype = Object.extend(new Person(), {    //先实例化超类,再把超类中的方法复制到子类中去,   
  // redefine the speak method                               //注意,实际上prototype类定义机制中并没有直接定义   
say: function(message) {                                       //类的属性而是通过intilize方法,而且所有的方法都   
    return this.name + ': ' + message + ', yarr!';      //之直接定义在prototype中,所以直接用原型链方式   
  }                                                                        //继承超类的所有方法不会产生问题。   
});    
  
var john = new Pirate('Long John');    
john.say('ahoy matey');    
// -> "Long John: ahoy matey, yarr!"  
/** obsolete syntax **/ 
var Person = Class.create();    //通过Class.create方法创建空类
Person.prototype = {               //把方法定义到prototype中,注意,是通过initalize方法初始化类的属性
  initialize: function(name) { 
    this.name = name; 
  }, 
  say: function(message) { 
    return this.name + ': ' + message; 
  } 
}; 
var guy = new Person('Miro'); 
guy.say('hi'); 
// -> "Miro: hi" 
                                            //prototype中的继承方式:
var Pirate = Class.create();    //建立空类;
// inherit from Person class: 
Pirate.prototype = Object.extend(new Person(), {    //先实例化超类,再把