var arr = [1,2,3,4,5] console.log(arr.slice(1,4)) console.log(arr) Function.prototype.bind1 = function(){ // arguments是個列表不是數(shù)組,將參數(shù)拆解為數(shù)組 const args = Array.prototype.slice.call(arguments) // 獲取this(數(shù)組第一項),shift方法是刪除第一項返回第一項值 const t = args.shift() // fn1.bind(...)中的fn1 const self = this //返回一個函數(shù) return function(){ return self.apply(t,args) } } function fn(a,b){ console.log(this) console.log(a,b) return 'ok' } const fn2 = fn.bind1({x:100},10,20) console.log(fn2()) 考點: 使用閉包和理解作用域 |
|