千鋒教育JavaScript全套視頻教程(10天學(xué)會(huì)Js,前端javascrip

P 119 118-改變this指向
不同的環(huán)境中?this的指向不同但是有時(shí)會(huì)我們需要讓這個(gè)this指向一個(gè)特定的地方??我們就需要強(qiáng)行改變this指向
方法
call()
語法?: 函數(shù)名.call(參數(shù)1,參數(shù)2,參數(shù)3,.....)
參數(shù)1?: 表示的是你的this要指向的對象??或者是你要讓this指向哪里
從參數(shù)2?開始是你傳遞的參數(shù)??有多少寫多少 需要一個(gè)一個(gè)傳遞?
語法?: 對象.函數(shù)名.call 參數(shù)1,參數(shù)2,參數(shù)3,.....)
特點(diǎn)
這個(gè)函數(shù)會(huì)立即執(zhí)行
apply()
語法:函數(shù) .apply(參數(shù)1 , 參數(shù)2)
參數(shù)1?: 表示的是你的this要指向的對象??或者是你要讓this指向哪里
參數(shù)2?是一個(gè)數(shù)組?里面存放的是你要傳遞的參數(shù)?有多少都要放在這個(gè)數(shù)組里
語法:對象.函數(shù) .apply(參數(shù)1 , 參數(shù)2)
特點(diǎn)
這個(gè)函數(shù)會(huì)立即執(zhí)行
bind()
語法?: 函數(shù)名.bind(參數(shù)1,參數(shù)2,參數(shù)3,.....)
參數(shù)1?: 表示的是你的this要指向的對象??或者是你要讓this指向哪里
從參數(shù)2?開始是你傳遞的參數(shù)??有多少寫多少 需要一個(gè)一個(gè)傳遞?
語法?: 對象.函數(shù)名.bind 參數(shù)1,參數(shù)2,參數(shù)3,.....)
特點(diǎn)
不會(huì)立即執(zhí)行
會(huì)返回一個(gè)改變this指向以后的函數(shù)
如果想要執(zhí)行?需要調(diào)用這個(gè)函數(shù)
這個(gè)時(shí)候的this被鎖死不能再改變
總結(jié)
相同點(diǎn)
都可以改變this的指向
不同點(diǎn)
傳遞參數(shù)的不同
call()和bind()傳遞參數(shù)的方式是一樣的?需要一個(gè)一個(gè)傳遞
apply() 參數(shù)2?需要傳遞一個(gè)數(shù)組??需要的參數(shù)都需要放到數(shù)組中
執(zhí)行時(shí)機(jī)
call()和apply()會(huì)立即執(zhí)行
bind()不會(huì)立即執(zhí)行 會(huì)返回一個(gè)改變this指向以后的函數(shù) 需要調(diào)用以后執(zhí)行