您好,登錄后才能下訂單哦!
今天小編給大家分享的是js中call、apply、bind有哪些區別,相信很多人都不太了解,為了讓大家更加了解call、apply、bind的區別,所以給大家總結了以下內容,一起往下看吧。一定會有所收獲的哦。
在 javascript 中,call、apply、bind 都是為了改變某個函數運行時的上下文(context)而存在的,換句話說,就是為了改變函數體內部 this 的指向。
js中call、apply、bind的區別
call、apply、bind三者的區別,可以通過下面這個例子來看。
var obj = { x: 81, }; var foo = { getX: function() { return this.x; } } console.log(foo.getX.bind(obj)()); //81 console.log(foo.getX.call(obj)); //81 console.log(foo.getX.apply(obj)); //81
三個輸出的都是81,但是注意看使用 bind() 方法的,他后面多了對括號。
也就是說,區別是,當你希望改變上下文環境之后并非立即執行,而是回調執行的時候,使用 bind() 方法。而 apply/call 則會立即執行函數。
總結一下:
apply 、 call 、bind 三者都是用來改變函數的this對象的指向的;
apply 、 call 、bind 三者第一個參數都是this要指向的對象,也就是想指定的上下文;
apply 、 call 、bind 三者都可以利用后續參數傳參;
bind 是返回對應函數,便于稍后調用;
apply 、call 則是立即調用 。
關于js中call、apply、bind有哪些區別就分享到這里了,希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。