javascript中作用域,优先级等等问题, 求助中。。。。。。。。

HTML code
<html> <head> <title>Untitled Page</title> </head> <body> <!--脚本块1--> <script> alert(a);//undefined 第一个A var a="dd"; alert(a);//dd 第二个A </script> <!--//脚本块2--> <script> alert(a);//function a(){} 第三个A var a=function a(){}; alert(a);//function a(){} 第四个A </script> <!--脚本块3--> <script> alert(a);//function a(){} 第五个A var a=function(){}; alert(a);//function(){} 第六个A </script> <script> /******************************************************* 关于以上的不解点。 在上述中我只用了一个a, 弹出的结果写在了注释后面 问题1: ********* 为什么第三个A不是弹出[dd],而第五个A弹出[function a(){}],也就是说, 第三个没有延续 [脚本块1],而第五个就延续 [脚本块2] ********** 问题2: *********** 它的执行顺序是怎样的。。 每个脚本块它们为什么不同。。 *********** 问题3 *************** 当我将它们合为一个脚本块里。为什么结果变了呢? //<script> alert(a);//function a(){} 第一个A var a="dd"; alert(a);//dd 第二个A alert(a);//dd 第三个A var a=function a(){}; alert(a);//function a(){} 第四个A alert(a);//function a(){} 第五个A var a=function(){}; alert(a);//function(){} 第六个A <!--</script>--> 注意其中,第一个A变了,还有第三个A也变了。 与分成各个脚本块有什么不同吗??   ***************   问题4

***************
额外的一个问题: 当我这样定义了一个脚本时。
var bi=function(){   this.aa=1;
this.aa=2;
} bi.prototype.aa=3;
var bi=new bi();
alert(bi.aa); //2 ---->弹出是2


问题是。为什么原型属性a没有去覆盖i内部的aa属性呢。
而aa内部的属性可以被覆盖 就是说。为什么弹出的结果不是3呢??
有可能得到3吗?
***************

********************************************************/
</script> </body></html>
posted @ 2007-10-01 16:35  过河卒A  阅读(302)  评论(1编辑  收藏  举报