有如下函数:调用后输出:
class A{
do(){
var a = new A()
var x = 0;
x ++;
console.log(x);
}
/*执行:a.do();==>输出:1*/
private y = 0;
do2(){
this.y ++;
console.log(y);
}
/*
do2();==>输出:1
再执行一次do2();==>输出:2
再执行一次do2();==>输出:3
*/
var b = new A();
private z = 0;
do3(){
var z = z;
z ++;
console.log(z);
}
/*
执行:b.do2();==>输出:1
do3();==>输出:1
再执行do3();==>输出:1
*/
//引用拷贝
private z = {x : 0};
do4(){
var d = z;
d.x ++;
console.log(d.x);
}
/*
执行:do4();==>输出:1
再执行do4();==>输出:1
*/
}
变量赋值分为两种:一种是值拷贝,另外一种是引用拷贝
null,undefined,boolean,number属于简单型,即传值
string,object,function属于复杂型,即传引用
如:var x = 2;
历经了三个步骤:1、定义name x
2、使value为 2
3、name指向value,即name x -> value 2
如:var a = "x";
var b = a;
b = "y";
a = ?;
上述例子经历了四个步骤:1、定义name b
2、value ?
3、b指向value,b -> value;
4、a.value复制b.value