一些代码输出问题

3/3/2022 Javascript

# 问题 1

考点:

  1. 立即执行函数
  2. 闭包
  3. this 指向
var func = (function(a) {
    this.a = a
    return function(a) {
        a += this.a
        return a
    }
})(
    (function(a, b) {
        return a
    })(3, 5)
)

func(7) // 10
1
2
3
4
5
6
7
8
9
10
11
12
13

# 问题 2

考点:

  1. 立即执行函数
  2. 变量提升
var foo = 'april'
;(function(f) {
    console.log(foo) // undefined
    var foo = f || 'hello'
    console.log(foo) // april
})(foo)
1
2
3
4
5
6
var foo = 'april'
;(function(foo) {
    console.log(foo) // april
    var foo = foo || 'hello'
    console.log(foo) //april
})(foo)
1
2
3
4
5
6
上次更新: 3/7/2022, 6:54:47 PM