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

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

JS怎么在事件綁定的閉包內(nèi)控制外部函數(shù)的返回值?

JS怎么在事件綁定的閉包內(nèi)控制外部函數(shù)的返回值?

富國滬深 2018-09-10 13:23:23
1.函數(shù)功能:我現(xiàn)在有一個函數(shù),這個函數(shù)可以傳遞一個參數(shù)進去。這個函數(shù)的主要功能是綁定各種事件處理函數(shù),這些綁定的事件處理函數(shù)將會對傳遞進去的參數(shù)進行處理,并最終將處理后的結(jié)果通過閉包外的函數(shù)返回出去。2.遇到的問題:事件處理函數(shù)是一些閉包,我不清楚怎么在閉包內(nèi)控制外部函數(shù)的返回值。3.代碼比如是這樣:var canvas = document.getElementById("#canvas"); // 一個已經(jīng)存在的canvas元素function test(canvas, src) { // src是一個圖片的url     var context = canvas.getContext("2d");    var img = new Image();     img.src = src;     img.onload= function() {         context.drawImage(img, 0, 0, 100, 100);        return canvas; // 預(yù)期目標(biāo)是在這里實現(xiàn)外部函數(shù)test返回新的canvas對象     }; }var newCanvas =  test(canvas, "abc.png"); //在此處預(yù)期取得新的canvas對象供別處使用4.問題補充說明:一、預(yù)期是:處理過后的新canvas對象作為test函數(shù)的返回值,但是如果在閉包外寫return,返回的值將會是未經(jīng)處理的canvas,所以我覺得應(yīng)該在img.onload對應(yīng)的閉包內(nèi)將新的canvas傳遞出去返回,但是不知道怎么實現(xiàn);二:必須要作為返回值傳出,因為我還有別的函數(shù)依賴于這個新的canvas傳遞過去才能執(zhí)行,所以需要取得返回值以后才能執(zhí)行。三:可能我的示例代碼不夠清楚,其實這里var newCanvas = test(canvas, "abc.png");我原來代碼中newCanvas是一個已經(jīng)建立的訪問器變量,在給它賦值的時候會調(diào)用訪問器里的setter,這樣就可以讓img加載完以后立刻執(zhí)行想執(zhí)行的指令。類似于監(jiān)聽數(shù)據(jù)變化,根據(jù)數(shù)據(jù)變化執(zhí)行指令一樣。而且只要給不同的訪問器變量賦值,就可以執(zhí)行不同的指令。
查看完整描述

1 回答

?
森欄

TA貢獻1810條經(jīng)驗 獲得超5個贊

使用回調(diào)函數(shù)吧:

var canvas = document.getElementById("#canvas"); // 一個已經(jīng)存在的canvas元素
    
    function test(canvas, src, callback) { // src是一個圖片的url
        var context = canvas.getContext("2d");        var img = new Image();
        img.src = src;
        img.onload= function() {
            context.drawImage(img, 0, 0, 100, 100);            callback(canvas)
        };
    }    
    var newCanvas;
    test(canvas, "abc.png", function (canvas){        newCanvas = canvas
    })


查看完整回答
反對 回復(fù) 2018-10-21
  • 1 回答
  • 0 關(guān)注
  • 950 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號