快乐崇拜tager
2016-03-24 12:38
这节课是看明白了。但上面有那么多"x"值, 难道不影响“var y=get_nextSibling(x);”中的X的取值吗,或者其他X的取值吗?
不影响的,function get_nextSibling(n){函数体 }
里面定义的变量x 并给x赋的值,只在这个函数里面有用,不能出这个函数,相当于局部变量。当局部变量和全局变量命名一样时,在局部里面,局部变量会把全局变量给覆盖掉。大括号外面的{ } var 定义的x 是全局变量,和function get_nextSlibling(n){ }这个函数没任何关系,只有用到这个函数时间,比如这里,var y=get_nextSibling(x);用到这个函数了,才把全局定义的x值 var x=document.getElementsByTagName("li")[1];这个x值,传递给n ,在通过函数定义的var x=n.nextSibling;传递给函数里面的x,所以取值没任何影响的!
一个直观的 例子 :
<script>
var a =1;
function test(){
alert(a); //---------这里出来的结果是,undefined,因为函数里面刚开始没给a赋值;
var a = 2;
alert(a);
}
test();
alert(a);
</script>
这个例子你运行一下,结果是:undefined,2,1;
因为你没有学习“局部变量”和“全局变量”,学过你就明白了!
X是变量,var y=get_nextSibling(x),是让变量x代替函数中n的位置,并执行get_nextSibling()这个函数,我的理解是这样
JavaScript进阶篇
468196 学习 · 21891 问题
相似问题