代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>javascript面向对象之类的例子_www.jb200.com</title> <link rel="stylesheet" type="text/css" href="float_.css"> <script type="text/javascript"> //Object 通过Object类创建对象 /* var p1=new Object(); p1.name="小明"; alert(p1.name); alert(p1.constructor); */ /* var n1=new Number(10); //等价于 n1=10 //给类添加共用的一个方法 Number.prototype.add=function(a){ return this+a; //this指的是 谁调用它就是谁,这里是n1调用它this就是n1 } alert(n1.add(10).add(20)); //输出40 var b=90; alert(b.add(40)); //同样调用add()方法,this 就是指的是b,所以输出130 */ /*请思考给js的Array对象扩展一个find(name)方法,当一个Array对象调用该方法 时候,如果能找到name则返回其下标,否则返回-1; */ var arr =new Array(3); arr[0]="lucy"; arr[1]="lily"; arr[2]="tom"; //遍历数组 for(var i=0;i<arr.length;i++){ document.writeln("name:"+arr[i]); } /* document.writeln("<br/>"); //数组反转 arr.reverse(); for(var i=0;i<arr.length;i++){ document.writeln("name:"+arr[i]); } */ //创建一个共用的find方法 Array.prototype.find=function(name){ //总结:this谁调用它就是谁 for(var i=0;i<this.length;i++){ //这里的this就是数组arr if(name==this[i]){ //返回下标 return i; } } return -1; } document.writeln("返回下标为:"+arr.find("tom")); document.writeln("返回下标为:"+arr.find("ttt")); //成员函数的理解 /* function 函数名(参数列表(这里可以多个)){ 语句;//函数主体 return 返回值;//这里可以有也可以没有 } js不支持重载,运行的时候不报错,如重复就调用最后一个 */ function test(a,b){ alert("test(a,b)"); } function test(a){ alert(a); } function test(a,b){ alert(a+" "+b); } test(23); //调用最后一个输出 a undefined test(3,"your") /* 结论: 1.js在调用一个函数的时候,是根据函数名来调用的,如果有多个函数名相同,则认最后那一个函数. 2.直接定义一个函数或者变量,实际上这些函数和变量就是全局函数和全局变量(本质上他们是属于window对象的) */ </script> </head> <body> </body> </html>