第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScriptCall()&Apply()vs BIND()?

JavaScriptCall()&Apply()vs BIND()?

qq_笑_17 2019-06-28 15:12:12
JavaScriptCall()&Apply()vs BIND()?我已經知道了apply和call是相似的函數(shù)this(某項職能的上下文)。區(qū)別在于我們發(fā)送參數(shù)的方式(手動的還是數(shù)組的)問題:但是我什么時候應該使用bind()方法?var obj = {   x: 81,   getX: function() {     return this.x;   }};alert(obj.getX.bind(obj)());alert(obj.getX.call(obj));alert(obj.getX.apply(obj));吉斯賓
查看完整描述

3 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

我在函數(shù)對象、函數(shù)調用之間創(chuàng)建了這個比較,call/applybind不久前:


.bind允許您設置this價值現(xiàn)在同時允許您執(zhí)行函數(shù)未來,因為它返回一個新函數(shù)對象。


查看完整回答
反對 回復 2019-06-28
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

使用.bind()當您希望以后用特定的上下文調用該函數(shù)時,在事件中很有用。使用.call().apply()當您想立即調用函數(shù)并修改上下文時。

立即調用/應用函數(shù),而bind返回一個函數(shù),在以后執(zhí)行時,該函數(shù)將具有調用原始函數(shù)的正確上下文設置。通過這種方式,您可以在異步回調和事件中維護上下文。

我經常這樣做:

function?MyObject(element)?{
????this.elm?=?element;

????element.addEventListener('click',?this.onClick.bind(this),?false);};MyObject.prototype.onClick?=?function(e)?{
?????var?t=this;??//do?something?with?[t]...
????//without?bind?the?context?of?this?function?wouldn't?be?a?MyObject
????//instance?as?you?would?normally?expect.};

我在Node.js中廣泛使用它進行異步回調,我想傳遞一個成員方法,但仍然希望上下文是啟動異步操作的實例。

簡單、簡單的BIND實現(xiàn)如下所示:

Function.prototype.bind?=?function(ctx)?{
????var?fn?=?this;
????return?function()?{
????????fn.apply(ctx,?arguments);
????};};
查看完整回答
反對 回復 2019-06-28
  • 3 回答
  • 0 關注
  • 289 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號