2012-03-29 56 views
0

我想我在理解dojo工具包時遇到了一個基本問題。嗯,我知道在JavaScript中返回一個變量,並調用它的另一個功能是這樣工作的:dojo中的return語句如何工作?

function a(){ 
    var x=5; 
    return x; 
} 

function b(){ 
    var y=a(); 
    console.log(y); 
} 

好了,現在我需要在函數b的imgsize()並可以向你展示我的dojo代碼。我想整個下午打電話imgsize在我的函數B(),但我didnÄt得到它......也許u能幫助我:)

require(["dojo/window"], function(win){ 
     // Get the viewport-size of the document: 
     var viewportsize =win.getBox(); 
     var imgsize = (viewportsize.w)/4; 
    }); 


function b(){ 
    var x = ??????? 
} 
+0

因爲它是異步的,所以在加載dojo/window之前無法訪問imgsize。 – Bergi 2012-03-29 15:32:32

回答

2

您有一個範圍的問題。你在函數內部定義了變量,所以一旦函數被執行,imgsize就消失了。

require(["dojo/window"], function(win){ 
    // Get the viewport-size of the document: 
    var viewportsize =win.getBox(); 
    dojo.setObject('imageSize', (viewportsize.w)/4); 
}); 


function b(){ 
    var x = dojo.getObject('imageSize'); 
}