簡體   English   中英

獲取當前function()范圍的所有變量

[英]Get all variables of the current function() scope

我遇到了問題。 我想得到當前的功能scrope。 我有這個示例代碼,我工作正常。

function nittle(){

    var Pen = new Dot(); // Generated dynamical through eval()
    .....

    for(key in window) {
        if( window[key] instanceof Dot ){
            alert("found it");
        }
    }

}

但它似乎不能在功能范圍內工作。 在它之外工作。 有工作嗎?

謝謝。

我不知道有任何方法可以通過編程方式確定在函數內聲明了哪些變量,除非使用nittle.toString()然后嘗試自己解析它以找到所有變量。 也許這對你有用嗎? (但這對我來說太麻煩了。)更新:但是如果變量是通過eval()創建的,那么它將無法工作,你只需要在函數的字符串表示中看到eval()語句。

有工作嗎?

您可以在函數中聲明單個對象,並將所有變量更改為該對象的屬性:

function nittle() {
  var nittleVars = {
     var1 : "something",
     Pen : new Dot(),
     etc : "whatever"
  };

  for (var key in nittleVars){
    if( nittleVars[key] instanceof Dot ){
        alert("found it");
    }
  }
}

您的更新表明變量是使用eval()創建的 - 您仍然可以使用對象屬性構思來創建變量:

  eval("nittleVars.newVar = new Dot()");  // inside the function

暫無
暫無

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

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