上次去腾讯IEG面试,面试官问了我一些关于Javascript的问题,如题所示,在现在看来,难度是很小的,但我不会回答,略显尴尬,在工作日常中写JS比较少,所以在面试回答的时候也回答不上。现在就把它记录下来,当回顾一下也好,当给自己一个学习机会也好。
this在JS中代表什么?
- this是谁和函数在哪定义的和在哪执行的都没有任何的关系;
- 函数执行的时候,如果函数名前面有".","."前面是谁,this就代表谁,没有的话,this就代表window;
- 自执行函数中的this永远是window;
- 给元素的某一个事件绑定方法,当事件触发的时候,执行对应的方法,方法中的this代表的就是当前的元素;
闭包是什么?
- 闭包就是从一个函数内访问到另外一个函数的变量的函数体;
单例模式是什么?
- 单例模式就是单个对象;
- 代表相同功能的代码写在同一个函数体里面;
工厂模式是什么?
- 和单例模式相对,工厂相当于实现了多个单例模式的功能;
- 传入不同的参数,输出的结果有所不同;