var num = 1;
function add(){
num = 2;
}
function con(){
add();
console.log(num);
}
con() //很明显输出的是2
var num = 1;
function add(num){
num = 2;
}
function con(){
add(num);
console.log(num);
}
con() //输出的居然是1
function add(num){
num = 2;
}
function con(){
var num = 1;
add(num);
console.log(num);
}
con() //输出的是1
同理,我使用一个对象
var test = {
num: 1,
add:function(num){
num ++;
},
console:function () {
this.add(this.num)
console.log(this.num);
}
}
test.console() //输出的是1
var test = {
num: 1,
add:function(){
this.num ++;
},
console:function () {
this.add()
console.log(this.num);
}
}
test.console() //输出的是2
var test = {
add:function(num){
num ++;
console.log(num);
},
console:function () {
var num = 1;
this.add(num)
console.log(num);
}
}
test.console() //输出的是1
不管是对象还是函数,其实都是一样的
这里就出现一个神奇的现象,参数不能乱用,这里就可以和
此题已解,就是参数的问题,function add(num) === function add(var num=num)