簡體   English   中英

如何從函數內部獲取變量?

[英]How to get variable from within the function?

我正在嘗試在此函數之外訪問myVariable 請看下面的代碼:

var myVariable;
function drawBasic(){
...
  myVariable = document.getElementById('chart_div3');
  var chart = new google.visualization.LineChart(document.getElementById('chart_div'));


google.visualization.events.addListener(chart, 'ready', function () {
        chart_div.innerHTML = '<img src="' + chart.getImageURI() + '">';

        myVariable.innerHTML = chart.getImageURI();
        
        myVariable = myVariable.innerHTML;

        //prints out desired value
        console.log(myVariable);


});

//prints out desired value
console.log(myVariable);
...
}
//prints out undefined
    console.log(myVariable);

我知道myVariable是在函數外部定義的,所以我希望它可以在函數內部設置,然后該值可以在其他任何地方使用,但我錯了。 所以我的問題是如何獲取chart.getImageURI()的值並將其存儲為函數drawBasic之外的值?

我認為這是因為“ var = myVariable ”中的語法存在問題。 我寫了這個,它工作正常。

var myVariable;
drawBasic();
function drawBasic(){
   myVariable = "Test String";
   //prints out desired value
   console.log(myVariable);
}
//prints out undefined
console.log(myVariable);

jsfiddle 示例

您可以將您的 chart.getImageURI() 放在 window.myVariable (始終可訪問)或隱藏表單輸入中,在您的函數中使用 jquery : $("#myHiddenItem").val(chart.getImageURI()) 以及您的位置需要值:$("#myHiddenItem").val()

您的結果undefined的原因可能是因為您的代碼執行順序:您的最后一個console.log()drawBasic()定義之后調用,但可能drawBasic()執行之前調用。

在函數內部,您可以執行以下操作:

myVariable = chart.getImageURI();

調用函數時將設置全局(因此在任何地方都可讀)變量 myVariable 的值。

執行 drawBasic() 后,myVariable 的值應該是正確的,在函數外部調用時也是如此。

暫無
暫無

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

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