开发者社区> 问答> 正文

js中数组和var类型的return问题

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才可以返回改变呢?

展开
收起
小旋风柴进 2016-03-20 10:15:09 2910 0
1 条回答
写回答
取消 提交回答
  • 两个完全不同的写法,一个是函数内直接修改全局变量。一个是返回一个值,主程序再修改。
    很明显,第二个方法好。因为函数封装了对数据的操作,你可以把函数放在另一个程序中用。第一个方法,函数随便修改全局变量,这样的函数失去了封装代码的意义。

    2019-07-17 19:08:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载