引言
有几天没有更新JS灵魂之问的专栏系列文章了,秋招季,也在忙着备战笔试面试。今天得空再来写一篇文章,本篇要讲解的内容是关于 闭包的回顾 ,那今天这篇看能不能问倒你了,一起来探索一下吧。

仰望星空的人,不应该被嘲笑
文章目录
-
- 引言
- 闭包回顾
-
- 第一题
- 第二题
- 第三题
- 最后
闭包回顾
第一题
function Test(a, b, c) {
var d = 0;
this.a = a;
this.b = b;
this.c = c;
function e() {
d++;
console.log(d);
}
this.f = e;
}
var test1 = new Test();
test1.f();
test1.f();
var test2 = new Test();
test2.f();
答案是 1 2 1,解释最后一个为什么还是 1,因为后面又实例化了一个新的对象,和之前的对象地址当然不是一个地方了,d的初始值都是 0。
第二题
看看下面代码会输出什么?
function test(){
console.log(typeof(arguments));
}
test(); //
答案是 object,因为 arguments是类数组(类似于数组的对象,即用对象模拟的数组)
第三题
var test = function a(){
return 'a';
}
console.log(typeof(a)); //
答案是 undefined,函数表达式是忽略函数名的,等于 a 根本没有。相当于 a 没有申明,如果直接打印会直接报错,但是 typeof的话会打印 undefined。
最后
文章产出不易,还望各位小伙伴们支持一波!
往期精选:
小狮子前端の笔记仓库
访问超逸の博客,方便小伙伴阅读玩耍~

学如逆水行舟,不进则退




