<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>JavaScript的原型继承</title>
<script>
/*Description: 这段js主要是讲述如何创建JavaScript对,象,以及JavaScript的原型继承*/
//创建一个对象 的第一种方式
var Hello = function(){
var msg = "Hello World";
this.println = function(printMsg){
printMsg = printMsg || msg;
document.writeln(printMsg + "<br>");
}
}
var hello = new Hello();
hello.println("Hello yelb");
hello.println();
document.writeln("<br>******************************************************<br>");
//创建狗的类
var Dog = function(){
}; // var Dog = new Object(); 这几种是创建类的效果是一样的,var Dog = {}这种方式创建的对象是没用prototype,没有构造器的。
Dog.prototype = {
eat: function(){
document.writeln("the dog eat dog-food<br>");
},
run: function(){
document.writeln("the dog run for joy<br>");
},
sleep: function(){
document.writeln("the dog so tire,so it sleep<br>");
}
}
var dog = new Dog();
dog.eat();
dog.run();
dog.sleep();
document.writeln("<br>******************************************************<br>");
//js继承的两种方式--第一种
var Collie = function(){
};//古代长须牧羊犬
Collie.prototype = new Dog();
Collie.prototype.action = function(){
document.writeln("Collie's actions is eat,run,sleep<br>");
}
var collie = new Collie();
collie.eat();
collie.run();
collie.sleep();
collie.action();
document.writeln("<br>******************************************************<br>");
//js继承的两种方式--第二种
var Bulldog = function(){ //Bulldog:老虎犬
var dog = new Dog();
for (var key in dog) {
this[key] = dog[key];
}
this.action = function(){
document.writeln("I'll show Bulldog special actions<br>");
this.eat();
this.run();
this.sleep();
}
}
var bulldog = new Bulldog();
bulldog.action();
document.writeln("<br>******************************************************<br>");
/**
var Test = {};
var test = new Test();//这种做法是失败的
*/
</script>
</head>
<body>
</body>
</html>