Javascript面向对象及组件开发的详细介绍(一)

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>无标题文档</title>  
  6. <script>  
  7.   
  8. var arr = [];  
  9.   
  10. arr.number = 10;  //对象下面的变量:叫做对象的属性  
  11.   
  12. //alert( arr.number );  
  13. //alert( arr.length );  
  14.   
  15. arr.test = function(){  //对象下面的函数 : 叫做对象的方法  
  16.     alert(123);  
  17. };  
  18.   
  19. arr.test();  
  20.   
  21. arr.push();  
  22. arr.sort();  
  23.   
  24. </script>  
  25. </head>  
  26.   
  27. <body>  
  28. </body>  
  29. </html>  

创建第一个面向对象程序
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>无标题文档</title>  
  6. <script>  
  7.   
  8. //var obj = {};  
  9.   
  10. var obj = new Object();  //创建了一个空的对象  
  11. obj.name = '小明';  //属性  
  12. obj.showName = function(){  //方法  
  13.     alert(this.name);  
  14. };  
  15.   
  16. obj.showName();  
  17.   
  18.   
  19. var obj2 = new Object();  //创建了一个空的对象  
  20. obj2.name = '小强';  //属性  
  21. obj2.showName = function(){  //方法  
  22.     alert(this.name);  
  23. };  
  24.   
  25. obj2.showName();  
  26.   
  27.   
  28.   
  29. </script>  
  30. </head>  
  31.   
  32. <body>  
  33. </body>  
  34. </html>  

工厂方式
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>无标题文档</title>  
  6. <script>  
  7.   
  8. //工厂方式 : 封装函数  
  9.   
  10. function createPerson(name){  
  11.       
  12.     //1.原料  
  13.     var obj = new Object();  
  14.     //2.加工  
  15.     obj.name = name;  
  16.     obj.showName = function(){  
  17.         alert( this.name );  
  18.     };  
  19.     //3.出场  
  20.     return obj;  
  21.       
  22. }  
  23.   
  24. var p1 = createPerson('小明');  
  25. p1.showName();  
  26. var p2 = createPerson('小强');  
  27. p2.showName();  
  28.   
  29. </script>  
  30. </head>  
  31.   
  32. <body>  
  33. </body>  
  34. </html>  

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>无标题文档</title>  
  6. <script>  
  7.   
  8.   
  9. //当new去调用一个函数 : 这个时候函数中的this就是创建出来的对象,而且函数的的返回值直接就是this啦(隐式返回)  
  10.   
  11. //new后面调用的函数 : 叫做构造函数  
  12.   
  13. function CreatePerson(name){  
  14.       
  15.     this.name = name;  
  16.     this.showName = function(){  
  17.         alert( this.name );  
  18.     };  
  19.       
  20. }  
  21.   
  22. var p1 = new CreatePerson('小明');  
  23. //p1.showName();  
  24. var p2 = new CreatePerson('小强');  
  25. //p2.showName();  
  26.   
  27. alert( p1.showName == p2.showName );  //false  
  28.   
  29. var arr = new Array();  
  30. var date = new Date();  
  31.   
  32. </script>  
  33. </head>  
  34.   
  35. <body>  
  36. </body>  
  37. </html>  


对象的引用
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>无标题文档</title>  
  6. <script>  
  7.   
  8. /*var a = [1,2,3];  
  9. var b = [1,2,3];  
  10.   
  11. alert( a == b );  //false*/  
  12.   
  13. //var a = 5;  
  14. //var b = a;  
  15. //b += 3;  
  16. alert(b); //8  
  17. //alert(a); //5   基本类型 : 赋值的时候只是值的复制  
  18.   
  19.   
  20. //var a = [1,2,3];  
  21. //var b = a;  
  22. //b.push(4);  
  23. alert(b);  //[1,2,3,4]  
  24. //alert(a);  //[1,2,3,4]   对象类型 : 赋值不仅是值的复制,而且也是引用的传递  
  25.   
  26. //var a = [1,2,3];  
  27. //var b = a;  
  28. //b = [1,2,3,4];  
  29. alert(b); //[1,2,3,4]  
  30. //alert(a); //[1,2,3]  
  31.   
  32. //var a = 5;  
  33. //var b = 5;  
  34. //  
  35. //alert(a == b);  //基本类型 : 值相同就可以  
  36.   
  37.   
  38. //var a = [1,2,3];  
  39. //var b = [1,2,3];  
  40.   
  41. //alert( a == b );  //false  //对象类型 : 值和引用都相同才行  
  42.   
  43. var a = [1,2,3];  
  44. var b = a;  
  45. alert( a==b );  //true  
  46.   
  47. </script>  
  48. </head>  
  49.   
  50. <body>  
  51. </body>  
  52. </html>  

原型的详细介绍
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>无标题文档</title>  
  6. <script>  
  7.   
  8. //原型 : 去改写对象下面公用的方法或者属性 , 让公用的方法或者属性在内存中存在一份 ( 提高性能 )  
  9.   
  10. //原型 : CSS中的class  
  11. //普通方法 : CSS中的style  
  12.   
  13. //原型 : prototype : 要写在构造函数的下面  
  14.   
  15. /*var arr = [1,2,3,4,5];  
  16. var arr2 = [2,2,2,2,2];  
  17.   
  18. arr.sum = function(){  
  19.       
  20.     var result = 0;  
  21.     for(var i=0;i<this.length;i++){  
  22.         result += this[i];  
  23.     }  
  24.     return result;  
  25.       
  26. };  
  27. arr2.sum = function(){  
  28.       
  29.     var result = 0;  
  30.     for(var i=0;i<this.length;i++){  
  31.         result += this[i];  
  32.     }  
  33.     return result;  
  34.       
  35. };  
  36.   
  37. //alert( arr.sum() );  //15  
  38. //alert( arr2.sum() );  //10*/  
  39.   
  40. var arr = [1,2,3,4,5];  
  41. var arr2 = [2,2,2,2,2];  
  42.   
  43. Array.prototype.sum = function(){  
  44.     var result = 0;  
  45.     for(var i=0;i<this.length;i++){  
  46.         result += this[i];  
  47.     }  
  48.     return result;  
  49. };  
  50.   
  51. alert( arr.sum() );  //15  
  52. alert( arr2.sum() );  //10  
  53.   
  54. </script>  
  55. </head>  
  56.   
  57. <body>  
  58. </body>  
  59. </html>  


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>无标题文档</title>  
  6. <script>  
  7.   
  8. var arr = [];  
  9. //arr.number = 10;  
  10. Array.prototype.number = 20;  
  11.   
  12. alert(arr.number);  
  13.   
  14. </script>  
  15. </head>  
  16.   
  17. <body>  
  18. </body>  
  19. </html>  


工厂方法之原型

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>无标题文档</title>  
  6. <script>  
  7.   
  8.   
  9. //当new去调用一个函数 : 这个时候函数中的this就是创建出来的对象,而且函数的的返回值直接就是this啦(隐式返回)  
  10.   
  11. //new后面调用的函数 : 叫做构造函数  
  12.   
  13. function CreatePerson(name){  
  14.       
  15.     this.name = name;  
  16.       
  17. }  
  18. CreatePerson.prototype.showName = function(){  
  19.     alert( this.name );  
  20. };  
  21.   
  22. var p1 = new CreatePerson('小明');  
  23. //p1.showName();  
  24. var p2 = new CreatePerson('小强');  
  25. //p2.showName();  
  26.   
  27. alert( p1.showName == p2.showName );  //true  
  28.   
  29. var arr = new Array();  
  30. var date = new Date();  
  31.   
  32. </script>  
  33. </head>  
  34.   
  35. <body>  
  36. </body>  
  37. </html>  




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值