Javascript 类/声明/继承/多态实例

//声明Person类
var Person = function(name) {  
    this.name = name;
}   
Person.prototype = { // protype与prototype.js并没有关系,只是个名称表示类的原始
     sayHello: function() {  
         alert("hi, javaeye, I'm A " + this.name);  
    }
}   

Object.extend = function(destination, source) {  
for (var property in source) {  
     destination[property] = source[property];  
}  
return destination;  
}
//声明Person1类
var Person1=function(name){
     this.name = name;
}
//Person1继承与多态Person,只继承Person.prototype方法
Person1.prototype=Object.extend(
     Person.prototype,
    {
            //
Person1其他方法声明
       }
)

//实例化,构造
var t = new Person1("dd");
t.sayHello();

根据上面理论,我们来应用prototype.js中创建类:
<script type="text/javascript" src="/inc/jscript/prototype.js"></script>
var Person = Class.create();
Person.prototype= {   
    initialize: function(name) {  
        this.name=name;
    },
  
sayHello: function() {  
         alert("hi, javaeye, I'm A " + this.name);  
    }

};

var Person1 = Class.create();
Person1.prototype=Object.extend(Person.prototype, {   
    initialize: function(name) {  
        this.name=name;
    }
   //Person1其他方法声明
});
//实例化,构造
var t = new Person1("dd");
t.sayHello();

//prototype.js中Calss对像代码:
//var Class = {   
// create: function() {   
//    return function() {   
//      this.initialize.apply(this, arguments);   
//    }   
// }   
//}
//Class.create中返回一个initialize对象,调用new时,将会创建一个新对象,并且调用//Person方法,Person方法会委托给"新产生对象
Person1"的 initialize方法
</script>
posted @ 2009-09-15 17:29  jone_linux  阅读(189)  评论(0编辑  收藏  举报