//基本类型
//指的是两个内存 所以n2还是10
var n1 = 10;
var n2 = n1;
n1 = 20;
console.log(n2);
//复杂(引用)类型
function Student(name,age,salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
//name 等这些属性都是在对象中储存的 s1 s2 指向的是同一个内存地址 所以s2输出的也是"mh"
// s2f赋值的时候 没有新开辟一个作用域
var s1 = new Student("za",18,90);
var s2 = s1;
s1.name = "mh";
console.log(s2.name);
//基本类型 和复杂类型作为函数的参数
//基本作为函数的参数 函数内部对参数的修改 不会修改外部的变量
function f1(a) {
a = 100;
}
var x = 1;
f1(x);
console.log(x);//输出是1
function f2(stu) {
stu.name = "zs";
}
var s = new Student("jj",18,100);
f2(s);
console.log(s.name);//输出的是zs

function f2(stu) {
stu = new Student();
stu.name = "zs";
}
var s = new Student("jj",18,100);
f2(s);
console.log(s.name);//这时候输出的就不是"zs" 而是"jj"