给 exports 赋值为 2,为什么打印出的是 1 ?

具体代码如下:

   const module = {
     exports: {}
   };
   
   function demo1(module) {
     module.exports = 1;
   }
   
   demo1(module);
   console.log(module.exports); // 1
   
   function demo2(exports) {
     exports = 2;
   }
   
   demo2(module.exports);
   console.log(module.exports); // 1

给 exports 赋值为 2,为什么打印出的是 1?

阅读 2.1k
1 个回答

划重点

调用函数时,传递给函数的值被称为函数的实参(值传递),对应位置的函数参数名叫作形参。

如果实参是一个包含原始值(数字,字符串,布尔值)的变量,则就算函数在内部改变了对应形参的值,返回后,该实参变量的值也不会政变。如果实参是一个对象引用,则对应形参会和该实参指向同一个对象。假如函数在内部改发了对应形参的值,返回后,实参指向的对象的值也会改变

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏