<!doctype html>
<html lang="zh-CN">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<meta charset="UTF-8"/>
<title>Document</title>
</head>
<body>
<script>
var test=(function(a){
this.a=a;
return function(b){
return this.a+b;
}
}(function(a,b){
return a;
debugger;
}(1,2)));
console.log(test(4))
//结果是输出5 求解?
</script>
</body>
</html>
记
则原式简化成:
此句执行完后
test
实为且此时
this.a
等于1
。因此test(4)
结果为5
很显然是5啊
分解
这要再看不懂,你就要好好学习下基础了
首先我们要理解test这个变量,test其实就是一个函数,如下
外面那层部分是一个立即执行的函数,首先,
这部分的结果就是 1,也就是说,代码可以简化为:
在上面的代码里面,
a=1
,因此,在test(4)中,我们得到的是: