- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title></title>
- </head>
- <body>
- <script type="text/javascript" >
- function getMax()
- {
- var max=arr[0];
- for(var i=0;i<arr.length;i++)
- {
- if(max<arr[i])
- max=arr[i];
- }return max;
- }
- Array.prototype.max=getMax;
- var arr=[7,4,6,1,8];
- document.write(arr.max());
- </script>
- </body>
- </html>
- 以上是html文件内容,重点在<body></body>里。
- 看,function getMax()里没有设置参数arr,而且,document.write(arr.max())里也没有把arr传入,仅仅是arr调用了自定义的max方法。看似漏洞百出,然而编译却通过了!又对比JScript中的prototype属性,给出了有如下一段代码示例:
- <div class="blockcode"><blockquote>function array_max( ){
- var i, max = this[0];
- for (i = 1; i < this.length; i++)
- {
- if (max < this[i])
- max = this[i];
- }
- return max;
- }
- Array.prototype.max = array_max;
- var x = new Array(1, 2, 3, 4, 5, 6);
- var y = x.max( );
复制代码 示例用的是this。
看来Javascrip语法松的很啊。是不是?
|