簡體   English   中英

在JavaScript中,如何將值從未命名函數傳遞給另一個未命名函數?

[英]In JavaScript, how can I pass value from unnamed function to another unnamed function?

我有兩個功能,其中一個檢查圖像是否加載:

var img = document.createElement('img');
img.src = "xxx";
img.onload = function() {
    var dimensionValue = 'loaded';
};
img.onerror = function() {
    var dimensionValue = 'failed';
}

當用戶單擊按鈕時,將執行后續函數,如下所示:

var trackClick = function(url) {
  console.log(dimensionValue);
};

我想記錄的值dimensionValue在點trackClick函數被調用(從a鏈接)。 但是,盡管第一個函數成功打印出了DimensionValue,但是當觸發第二個函數時,它不包含任何值,或者無法指示該dimensionValue不存在。

我還嘗試將trackClick放在onload / onerror函數中,但是隨后顯示一條消息,通知您沒有名為trackClick函數

因此,我的問題是如何在JS中將一個未命名函數的值傳遞給另一個匿名函數?

您的變量可能無法被其他函數訪問,因為它是在另一個函數中定義的。

嘗試:

var dimensionValue;
var img = document.createElement('img');
img.src = "xxx";
img.onload = function() {
    dimensionValue = 'loaded';
};
img.onerror = function() {
    dimensionValue = 'failed';
}

我認為您也可以:

var trackClick = function(url) {
    var img = document.createElement('img');
    img.src = "xxx";
    img.onload = function() {
        console.log('loaded');
    };
    img.onerror = function() {
        console.log('failed');
    }
}

如果這不起作用,請發布所有代碼以獲取進一步的幫助。

通過在函數外部聲明dimensionValue ,可以擴展可以訪問它的范圍。 假設您的trackClick函數在同一作用域內,那么它應該可以訪問dimensionValue

var dimensionValue
var img = document.createElement('img');
img.src = "xxx";
img.onload = function() {
    dimensionValue = 'loaded';
};
img.onerror = function() {
    dimensionValue = 'failed';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM