日期:2014-05-16 浏览次数:20353 次
<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>
var bi=function(i){ this.aa=i; } bi.prototype.bb=function(){return(this.aa)}; //bi.prototype.bb=function(){return("aaaaaa")}; var c