var x = 1;
function func(){
x++;
}
func();
document.write(x); //2
</script>
<script>
var x = 1;
function func(){
x++;
}
func(x);
document.write(x); //2
</script>
<script>
var x = 1;
function func(a){
x++;
}
func(x);
document.write(x); //2
</script>
<script>
var x = 1;
function func(x){
x ++ ;
}
func(x);
document.write(x); //1
</script>
//var x; 变量【x】是建立在栈里面的
//如果在函数内找不到【x】就会去外层寻找,只有第四种是传进来一个【x】可以直接得到的,会对函数内部的【x】进行操作,不会影响到外面的x。
<script>
var obj = { x:1};
function func(obj){
obj.x ++;
}
func(obj)
alert(obj.x); // 2
</script>
<script>
var obj = { x:1};
function func(a){
a.x ++;
}
func(obj);
alert(obj.x); //2
</script>
//对象的数据是存放在堆里面的
//通过上两个可以知道 func()里面可以是obj(对象),function里面对对象进行操作,函数里面会对对相同进行影响
<script>
var obj = { x:1};
function func(a){
a ++;
}
func(obj.x)
alert(obj.x); // 1
</script>
//这一种是对obj.x进行方法,这时函数内进行操作不会对对象里面进行影响