apply/call第一个参数传入不同类型的值,分别表示什么意义

apply/call动态改变函数的执行上下文,即改变this的指向。
以call为例:

function fun () {
console.log(this)
}

fun.call(1) // [Number: 1]

fun.call(‘2’) // [String: ‘2’]

fun.call(false) // [Boolean: false]

fun.call(null) // window/global

fun.call(undefined) // window/global

fun.call({name: ‘张三’}) // {name: ‘张三’}

在严格模式下,给call/apply传入的任何参数不再转换

‘use strict’

function fun () {
console.log(this)
}

fun.call(1) // 1

fun.call(‘2’) // ‘2’

fun.call(false) // false

fun.call(null) // null

fun.call(undefined) // undefined

fun.call({name: ‘张三’}) // {name: ‘张三’}

猜你喜欢

转载自blog.csdn.net/qq_29055201/article/details/84974153