今天看到了两道题,很有意思
原生js的题:
- Foo.getName():这是还没有new所以是2
- getName():Foo().getName()还没有执行所以是4
- Foo().getName():Foo().getName()执行了所以是1
- getName():是window里面的,他把var getName = function () {alert(4)},给覆盖了,当然也包括函数声明,当然也是因为Foo().getName()执行了,所以覆盖了
- new Foo.getName():是new的Foo里面的getName(),“.”一般翻译为:的
- new Foo().getName():是new的Foo,然后在执行里面的getName()函数
- 不管new几回,最后都会优先执行离代码最近的new
同步或异步的题:
如果想详细了解宏任务和微任务:https://www.jianshu.com/p/bfc3e319a96b