标签:简单 name 区别 输出 fun 一个 获取 cti xxx
基本数据类型作为参数时,函数内部对参数值的修改不会改变外部变量的值
function a(s){//定义以s为参数的函数,返回s的值
s=100;
return s;
}
var y=2;
a(y);//y作为参数调用函数a
console.log(y);//y还是为2
结果还是1因为把y的值给s时是简单的复制了一份,y和s可以单独操作不相互影响
复杂数据类型作为参数时,函数内部对参数值的修改会改变外部变量的值
因为复杂数据类型赋值是把栈中对象的地址赋给变量,函数内外两个变量指向同一个对象,所以只要对象的属性值改变,两个变量值都会改变
function student(age,name,grade){
this.age=age;
this.name=name;
this.score=grade;
}
var s1=new student(18,"wjq",2);//创建一个student对象
function a(s){
s.name="xxx";
}
a(s1)//把s1赋给s
console.log(s1.name);//输出xxx
所以要弄懂js中简单数据类型和复杂数据类型的区别,关键还要搞懂两个在内存中的存储过程。
标签:简单 name 区别 输出 fun 一个 获取 cti xxx
原文地址:https://www.cnblogs.com/alenhx/p/9048144.html