1. 程式人生 > >apply/call第一個引數傳入不同型別的值,分別表示什麼意義

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: ‘張三’}