麻烦检查一下注释是否正确
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>IIFE中的函数,上下文是window对象</title>
</head>
<body>
<script>
var a = 1;
var obj = {
a: 2,
fun: (function () {
// 此时的a为全局变量,因为IIFE立即调用了fun函数,此时this.a指的是全局变量a=1
var a = this.a;
return function () {
// return表示函数的返回值,a为2,this指的是obj,this.a则为2
console.log(a + this.a);
}
// 适用规则4
})()
};
// 适用规则1,输出3
obj.fun();
</script>
</body>
</html>
源自:面向对象
3-7 上下文规则(4)
11
收起
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星