var arr = [10, 20, 30];
function add( arrayObj ){
for(var i in arr){
arrayObj[i] ++;
}
console.log( arrayObj );
}
add( arr );
console.log( arr );
var x = 10;
function f1( num ){
num++ ;
console.log(num);
}
f1( x );
console.log( 'x=' + x );
为什么数组不用定义return就可以改变里面的值,而var x=10,需要return才可以返回改变呢?
两个完全不同的写法,一个是函数内直接修改全局变量。一个是返回一个值,主程序再修改。
很明显,第二个方法好。因为函数封装了对数据的操作,你可以把函数放在另一个程序中用。第一个方法,函数随便修改全局变量,这样的函数失去了封装代码的意义。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。