js:函数的传参都是按值传递的

js:函数的传参都是按值传递的,第1张

ES6中所有函数的参数都是按值传递的。这意味着函数外的值,会被复制到函数内部的参数中。

我们举个例子。

​
​
function add(num){
num+=10;
return num;
}
let count=20;
add(count);
console.log(count)//20

​

​

看,对于学过C语言或者java等的同学,这个并不是什么难事。但是我们再看这个

function setName(Obj){
   obj.name="Nicholas"
 
}
let person=new Object();
console.log(person.name)//undefined
setName(person);
console.log(person.name)//"Nicholas"

.为了证明对象是按值传递的,我们再来看看下面这个修改后的例子

function setName(Obj){
   obj.name="Nicholas"
   obj=new Object();
   obj.name="Greg";
}
let person=new Object();
console.log(person.name)//undefined
setName(person);
console.log(person.name)//"Nicholas"

.这个例子唯一的不同就是setName()中多了两行代码。但是新new出来的本地对象在函数执行结束的时候就被销毁了。

.

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/734785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存