您的位置:首页 > Web前端 > JavaScript

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

2009-09-15 17:29 302 查看
//声明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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: