冒充继承

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>11-冒充继承</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" /> <script type="text/javascript">
//冒充继承
function Cat(){
this.weapon = "伶牙俐齿";
this.climb = function(){
console.log('在爬树');
}
} function Tiger(){
//如果在这个地方把Cat构造函数的代码给执行一次
//这样Tiger的对象也会拥有Cat对应的成员
//window.Cat();
Cat.call(this);//this就是north的指引,这样Cat函数内部的this就是north
this.color = "yellow and black";
this.weight = 200;
} var north = new Tiger;
console.log(north);
//该方式没有复制继承灵活,每实例化的对象都会用户全部的成员。
</script> <style type="text/css">
</style>
</head> <body>
</body>
</html>

11-冒充继承

该方式没有复制继承灵活,每实例化的对象都会用户全部的成员。

【多态】

在php里边,工厂设计模式可以体现多态,

在java里边,许多同名的方法也可以体现多态。

在javascript里边可以通过this关键字体现多态。

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>12-this关键字体现多态</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" /> <script type="text/javascript"> var name = "kitty";
var age = 10; function Cat(){
console.log(this.name+"--"+this.age);
}
Cat();//kitty--10 var bosi = {name:'波斯猫',age:13,color:'black'};
//给bosi对象增加成员方法,让其指向上边的Cat函数
bosi.express = Cat;
bosi.express();//波斯猫--13 function Wolf(){
this.name = "sevenwolf";
this.age = 19;
this.eye = "闪闪发光";
}
var seven = new Wolf;
seven.say = Cat;
seven.say();//sevenwolf--19 var pig = {name:'花猪',age:1.5,hobby:'sleep'};
Cat.call(pig);//花猪--1.5 </script> <style type="text/css">
</style>
</head> <body>
</body>
</html>

12-this关键字体现多态

通过this体现多态效果

【异常】

异常:Exception

try{

}catch(Exception e){

}finally{

}

异常:(有别于正常的状体)其不是具体错误,程序一开始开发没有任何问题,运行时间较长了,运行参数和运行的信息发生了变化,导致后边代码出现了错误。

1 异常类型

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>14-异常</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" /> <script type="text/javascript"> var name = "tom";
var age = 25; try{
//以下语句代码如果出现异常情况
//相关的错误信息会被catch捕捉
//可以通过catch里边的ex获得具体错误信息
console.log(name);
console.log(age); console.log(addr); //使用一个未定义变量 ReferenceError var student = new Array(-10); //RangeError Invalid array length var num = new 20(); //TypeError number is not a function var dog = new eval(); //TypeError function eval() { [native code] } is not a constructor }catch(ex){
//捕捉异常错误信息
console.log(ex);
} console.log('every thing is ok'); </script> <style type="text/css">
</style>
</head> <body>
</body>
</html>

14-异常

2 捕捉异常并抛出

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>15-异常</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" /> <script type="text/javascript"> var name = "tom";
var age = 25; try{
//以下语句代码如果出现异常情况
//相关的错误信息会被catch捕捉
//可以通过catch里边的ex获得具体错误信息
console.log(name);
console.log(age); //console.log(addr); //使用一个未定义变量 ReferenceError
var student = new Array(-10); //RangeError Invalid array length
//var num = new 20(); //TypeError number is not a function
//var dog = new eval(); //TypeError function eval() { [native code] } is not a constructor }catch(ex){
//捕捉异常错误信息
//console.log(ex);
console.log(ex.message);//获得具体异常错误信息
//fileName
//lineNumber
//columnNumber
//for(var k in ex){
// console.log(k+"--"+ex[k]);
//}
} console.log('every thing is ok'); </script> <style type="text/css">
</style>
</head> <body>
</body>
</html>

15-异常

3 自定义异常信息

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>16-异常</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" /> <script type="text/javascript"> var name = "tom";
var age = 25; try{
console.log(name);
console.log(age); //自定义错误异常信息
if(typeof addr =='undefined'){
throw {msg:'addr变量没有定义',linenumber:20,col:53,filename:'16.html'};
} else {
console.log(addr);
} }catch(ex){
console.log(ex.msg);//获得具体异常错误信息
} console.log('every thing is ok'); </script> <style type="text/css">
</style>
</head> <body>
</body>
</html>

16-异常

4异常语句块

try{

}catch(ex){

可以把异常信息放入日志文件里边,供系统维护人员查看,定期对代码进行优化,避免重复出现异常

}finally{

}

在异常里边有两种情况

①       只走try语句(没有异常),之后走后边的代码,边

②       try走了一半发生异常,走catch,当catch执行完毕也需要走后边的代码

try-catch后边的代码都可以放到finally里,无论是否产生异常finally里边的代码都给执行

隐藏finally关键是否使用都可以。

05-23 19:49