2012-03-17 108 views
0

我有一個對象輕鬆訪問類變量,函數在全球範圍內

var long_object_name = { 
    'init':function(){ 

    this.properties.the_screen_size[0] = window.innerWidth; 
    this.properties.the_screen_size[1] = window.innerHeight; 

    window.addEventListener('resize', function(){ 
     long_object_name.properties.the_screen_size[0] = window.innerWidth; 
     long_object_name.properties.the_screen_size[1] = window.innerHeight; 
    }, false); 
    }, 
    'properties':{ 
    'the_screen_size':[] 
    } 
} 

所以我要存儲屏幕大小,當用戶改變窗口大小改變的變量。
問題是,在重新調整事件函數中,我必須鍵入「long_object_name」到「,達到」的「屬性」對象。所以我的問題是,有沒有什麼辦法「達到」「屬性」對象的另一種方式,例如像「this.properties」但「this」在這種情況下不起作用,對吧?

回答

1
var long_object_name = { 
    'init':function(){ 

    var ss = this.properties.the_screen_size; 

    ss[0] = window.innerWidth; 
    ss[1] = window.innerHeight; 

    window.addEventListener('resize', function(){ 
     ss[0] = window.innerWidth; 
     ss[1] = window.innerHeight; 
    }, false); 
    }, 
    'properties':{ 
    'the_screen_size':[] 
    } 
} 
+0

+1,輝煌的解決方案;) – 2012-03-17 20:10:32

+0

@GGG:啊,我看大家都在想。 +1給你。 – 2012-03-17 20:11:57

1
var long_object_name = { 
    'init':function(){ 

    var screenSize = this.properties.the_screen_size; 

    screenSize[0] = window.innerWidth; 
    screenSize[1] = window.innerHeight; 

    window.addEventListener('resize', function(){ 
     screenSize[0] = window.innerWidth; 
     screenSize[1] = window.innerHeight; 
    }, false); 
    }, 
    'properties':{ 
    'the_screen_size':[] 
    } 
}