·您当前的位置:首页 > 技术教程 > JavaScript >

[JS]js中prototype属性和应用说明附实例

时间:2014-07-11 08:17酷播
js中prototype属性和应用说明附实例

[JS]js中prototype属性和应用说明附实例

  1. <html> 
  2. <head> 
  3. <title>JS学习</title> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. </head> 
  6. <body> 
  7. js prototype 详解 
  8. <script> 
  9. //例子一 
  10. /*Object.prototype.Peoperty = 1
  11. Object.prototype.Method = function() 
  12. alert("this method 1"); 
  13. var obj = new Object(); 
  14. alert(obj.Peoperty); 
  15. obj.Method();*/ 
  16. //可以在类型上使用ptoptotype来为类型添加行为,这些行为只能在类型的实例上体现 
  17. //JS中允许的类型有Array, Boolean, Date, Enumerator, Error, Function, Number, Object, RegExp, String 
  18.  
  19.  
  20. //例子二 
  21. /*var obj = new Object(); 
  22. obj.prototype.Property = 1
  23. obj.prototype.Mothod = function() 
  24. alert("1"); 
  25. }*/ 
  26. //在实例上不能使用prototype,否则发生编译错误 
  27.  
  28. //例子三 
  29. /*Object.Property = 1
  30. Object.Method = function() 
  31. alert("this method"); 
  32. alert(Object.Property); 
  33. Object.Method();*/ 
  34. //可以为类型定义"静态"的属性和方法,直接在类开 
  35.  
  36. //例子四 
  37. /*//MyObject.Property = 1
  38. //只能使用Object关键字才行 
  39. Object.Property = 1
  40. Object.Method = function() 
  41. alert("this MyObject"); 
  42. //var obj = new MyOjbect(); 
  43. //alert(obj.Property); 
  44. //obj.Method(); 
  45. Object.Method();*/ 
  46. //Error 实例不能调用类型的静态属性或方法,否则发生对像未定义的错误 
  47.  
  48.  
  49. //实例五 
  50. /*function Aclass() 
  51. this.Property = 1
  52. this.Method = function() 
  53.  
  54. alert("Aclass Method"); 
  55. var obj = new Aclass(); 
  56. alert(obj.Property); 
  57. obj.Method();*/ 
  58. //这个例子演示了通常的在JavaScript中定义的一个类型的方法 
  59.  
  60.  
  61. //例子六 
  62. /*function Aclass() 
  63. this.Property = 1
  64. this.Method = function() 
  65. alert("Aclass Method"); 
  66. Aclass.prototype.Property2 = 2; 
  67. Aclass.prototype.Method2 = function() 
  68. alert("Aclass Method2"); 
  69. var obj = new Aclass(); 
  70. alert(obj.Property2); 
  71. obj.Method2();*/ 
  72. //可以在外部使用prototype为自定义的类型添加属性和方法 
  73.  
  74.  
  75. //例子七 
  76. /*function Aclass() 
  77. this.Peoperty = 11
  78. this.Method = function() 
  79. alert("this Method"); 
  80. Aclass.prototype.Peoperty = 22
  81. Aclass.prototype.Method = function() 
  82. alert("Aclass Method2"); 
  83. var obj = new Aclass(); 
  84. alert(obj.Property); //我测试的结果为: 属性是可以在外部进行修改的 
  85. obj.Method(); //但方法在外部修改不起作用*/ 
  86. //后面发现单词写错了 
  87. //在外部不能通过prototype改变自定义类型的属性和方法 
  88. //该例子可以看到,调用的属性和方法仍是最初定义的结果 
  89. //=================================================== 
  90.  
  91.  
  92. //例子八 
  93. /*function Aclass() 
  94. this.Peoperty = 11
  95. this.Method = function() 
  96. alert("this Method"); 
  97. var obj = new Aclass(); 
  98. obj.Peoperty = 22
  99. obj.Method = function() 
  100. alert("this Method2"); 
  101. alert(obj.Peoperty); 
  102. obj.Method();*/ 
  103. //可以在对像上改变属性 
  104. //也可以在对像上改变方法(和普通的面向对像的不同) 
  105.  
  106. //例子九 
  107. /*function Aclass() 
  108.  
  109. this.Property = 1
  110. this.Method = function() 
  111. alert("this Method"); 
  112. var obj = new Aclass(); 
  113. obj.Property2 = 22
  114. obj.Method2 = function() 
  115. alert("this Method2"); 
  116. alert(obj.Property2); 
  117. obj.Method2();*/ 
  118. //可以在对像上增加属性或方法 
  119.  
  120.  
  121. //例子十 
  122. /*function Aclass() 
  123. this.Property = 1
  124. this.Method = function() 
  125. alert("this Method"); 
  126.  
  127. function Aclass2() 
  128. this.Property222
  129. this.Method2 = function() 
  130. alert("this Method2"); 
  131.  
  132. Aclass2.prototype = new Aclass(); //Aclass2继承Aclass类型 
  133. var obj = new Aclass2(); 
  134. alert(obj.Property); 
  135. obj.Method(); 
  136. alert(obj.Property2); 
  137. obj.Method2();*/ 
  138. //说明了一个类型如何从另一个类型继承 
  139.  
  140.  
  141. //例子十一 
  142. function Aclass() 
  143. this.Property = 1
  144. this.Method = function(){ 
  145. alert("this Method"); 
  146. function Aclass2() 
  147. this.Property2 = 22
  148. this.Method2 = function(){ 
  149. alert("this Method2"); 
  150. Aclass2.prototype = new Aclass(); 
  151. Aclass2.prototype.Property = 33
  152. Aclass2.Property.Method = function() 
  153. alert("this Method"); 
  154. alert(obj.Property); 
  155. obj.Method(); 
  156. //这个例子说明了子类如何重写父类的属性或方法 
  157.  
  158. //JavaScript能够实现的面向对像的特征有 
  159. //公有属性(public field) 
  160. //公有方法(public Method) 
  161. //私有属性(private field) 
  162. //私有方法(provate Method) 
  163. //方法重载(method overload) 
  164. //构造函数(constructor) 
  165. //事件(event) 
  166. //单一继承(single inherit) 
  167. //子类重写父类的属性或方法(override) 
  168. //静态属性或方法(static member) 
  169. </script> 
  170.  
  171. </body> 
  172. </html> 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器