this的作用域:apply,call,bind##
<strong>apply方法</strong>
fun.apply(thisArg,[argsArray]):在指定對(duì)象的作用域上調(diào)用函數(shù)叨橱,函數(shù)參數(shù)以數(shù)組形式提供,該方法實(shí)際上等于設(shè)置函數(shù)體內(nèi)this對(duì)象值席爽,即:this的作用域桅锄。
參數(shù):thisArg要在其中運(yùn)行函數(shù)的作用域赘阀、方法的綁定對(duì)象筋夏。即:要把函數(shù)體內(nèi)的this指到哪個(gè)對(duì)象上。
參數(shù):argsArray綁定對(duì)象的參數(shù)數(shù)組税手。該參可以是一個(gè)Array對(duì)象實(shí)例蜂筹,也可以是一個(gè)arguments對(duì)象。
<strong>call方法</strong>
.fun.call(thisArg,[arg1,[arg2,[...]]]):在指定對(duì)象上作用域上調(diào)用函數(shù)冈止,該方法實(shí)際上等于設(shè)置函數(shù)體內(nèi)的this對(duì)象的值狂票,即:this的作用域,該方法與apply方法作用相同熙暴,只是在參數(shù)接收方式上有所區(qū)別闺属。對(duì)于call,第一個(gè)方法是this關(guān)鍵字或?qū)ο竺麤](méi)有變化周霉,其余參數(shù)都是直接傳遞給函數(shù)掂器,這與apply按數(shù)組方式傳遞參數(shù)有所不同。
參數(shù):thisArg一定要在其中運(yùn)行函數(shù)的作用域俱箱,方法的綁定對(duì)象国瓮。即:要把函數(shù)體內(nèi)的this指到哪個(gè)對(duì)象上。
參數(shù):arg1,arg2,...綁定函數(shù)對(duì)象的參數(shù)列表。
<strong>bind方法</strong>
bind方法是ES5中新增的方法乃摹,該方法會(huì)創(chuàng)建一個(gè)函數(shù)實(shí)例禁漓,實(shí)例的this為傳遞到bind方法的值。
.fun.bind(thisArg[,arg1[,arg2][,...]]):創(chuàng)建一個(gè)函數(shù)實(shí)例孵睬,參數(shù)傳遞形式與call方法相同播歼,實(shí)例的this作用域?yàn)閎ind方法中thisArg對(duì)象作用域。
參數(shù):thisArg要在其中創(chuàng)建函數(shù)實(shí)例的作用域?qū)ο箨痢<矗汉瘮?shù)實(shí)例this作用域?qū)ο蟆?br>
參數(shù):arg1,arg2,...創(chuàng)建函數(shù)實(shí)例的參數(shù)列表秘狞。