模拟实现 call
- call
js
export default function myCall(context, ...args) {
context = context ? Object(context) : window
let fn = Symbol()
context[fn] = this
const result = context[fn](...args)
delete context[fn]
return result
}- apply
js
export default function myApply(context, arr) {
context = context ? Object(context) : window
const fn = Symbol()
context[fn] = this
let result
if (!arr) {
result = context[fn]()
} else {
result = context[fn](...arr)
}
return result
}