引言
有几天没有更新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
。
最后
文章产出不易,还望各位小伙伴们支持一波!
往期精选:
小狮子前端の笔记仓库
访问超逸の博客,方便小伙伴阅读玩耍~
学如逆水行舟,不进则退