作用域简析

有如下函数:调用后输出:
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值