【亡羊补牢】JS灵魂之问 第23期 修炼内功 关于闭包的回顾

   日期:2020-09-20     浏览:88    评论:0    
核心提示:引言有几天没有更新JS灵魂之问的专栏系列文章了,秋招季,也在忙着备战笔试面试。今天得空再来写一篇文章,本篇要讲解的内容是关于 闭包的回顾 ,那今天这篇看能不能问倒你了,一起来探索一下吧。仰望星空的人,不应该被嘲笑文章目录引言闭包回顾第一题第二题第三题最后闭包回顾第一题function Test(a, b, c) { var d = 0; this.a = a; this.b = b; this.c = c; function e() { d++; con

引言

有几天没有更新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

最后

文章产出不易,还望各位小伙伴们支持一波!

往期精选:

小狮子前端の笔记仓库

访问超逸の博客,方便小伙伴阅读玩耍~

学如逆水行舟,不进则退
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服