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出来的本地对象在函数执行结束的时候就被销毁了。
.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)