黑马程序员技术交流社区

标题: 关于Javascript prototype属性 [打印本页]

作者: 王梁星    时间: 2012-10-26 15:00
标题: 关于Javascript prototype属性
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <head>
  5.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6.         <title></title>
  7. </head>
  8. <body>
  9. <script type="text/javascript" >
  10. function getMax()
  11. {
  12. var max=arr[0];
  13. for(var i=0;i<arr.length;i++)
  14. {
  15.   if(max<arr[i])
  16.    max=arr[i];
  17. }return max;
  18. }
  19. Array.prototype.max=getMax;
  20. var arr=[7,4,6,1,8];
  21. document.write(arr.max());
  22. </script>

  23. </body>
  24. </html>

  25. 以上是html文件内容,重点在<body></body>里。
  26. 看,function getMax()里没有设置参数arr,而且,document.write(arr.max())里也没有把arr传入,仅仅是arr调用了自定义的max方法。看似漏洞百出,然而编译却通过了!又对比JScript中的prototype属性,给出了有如下一段代码示例:
  27. <div class="blockcode"><blockquote>function array_max( ){
  28.    var i, max = this[0];
  29.    for (i = 1; i < this.length; i++)
  30.    {
  31.    if (max < this[i])
  32.    max = this[i];
  33.    }
  34.    return max;
  35. }
  36. Array.prototype.max = array_max;
  37. var x = new Array(1, 2, 3, 4, 5, 6);
  38. var y = x.max( );
复制代码
示例用的是this。

看来Javascrip语法松的很啊。是不是?






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2