document.write('
解析:
1.继承
(1)原型继承法。
function parentClass(){
//private fIEld
var x = "I\'m a parentClass fIEld!";
//private method
function method1() {
alert(x);
alert("I\'m a parentClass method!");
}
// public fIEld
this.x = "I\'m a parentClass object fIEld!";
// public method
this.method1 = function() {
alert(x);
alert(this.x);
method1();
}
}
parentClass.prototype.method = function () {
alert("I\'m a parentClass prototype method!");
}
parentClass.staticMethod = function () {
alert("I\'m a parentClass static method!");
}
(2)调用继承法。
function parentClass() {
// private fIEld
var x = "I\'m a parentClass fIEld!";
// private method
function method1() {
alert(x);
alert("I\'m a parentClass method!");
}
// public fIEld
this.x = "I\'m a parentClass object fIEld!";
// public method
this.method1 = function() {
alert(x);
alert(this.x);
method1();
}
}
parentClass.prototype.method = function () {
alert("I\'m a parentClass prototype method!");
}
parentClass.staticMethod = function () {
alert("I\'m a parentClass static method!");
}
2.多态
(1)重载。
function add(){
var sum=0;
for(var i=0;i<arguments.length;i++){
sum+=arguments[i];
}
return sum;
}
(2)覆盖。
function parentClass() {
this.method = function() {
alert("parentClass method");
}
}
function subClass() {
this.method = function() {
alert("subClass method");
}
}
subClass.prototype = new parentClass();
subClass.prototype.constructor = subClass;
var o = new subClass();
o.method();
');