apply/call第一個引數傳入不同型別的值,分別表示什麼意義
阿新 • • 發佈:2018-12-24
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: ‘張三’}