2012-03-17 103 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':[] 
    } 
}