2011-05-31 39 views
2

我有一个名为imageResizing的类。它有一个成员,MAX_WIDTH_ORIGINAL_IMG其定义为650:为什么使用“this”时该功能无法识别该成员

MAX_WIDTH_ORIGINAL_IMG:650, 

和一个名为setMaxSizeOriginalImg功能,它的唯一的事情就是警报成员MAX_WIDTH_ORIGINAL_IMG

alert(this.MAX_WIDTH_ORIGINAL_IMG); 

我呼吁负载的功能如下所示:

addEventSimple(window,'load',imageResizing.setMaxSizeOriginalImg); 

并且警示框显示undefined

但是,当我改变了警惕alert(imageResizing.MAX_WIDTH_ORIGINAL_IMG);,警告框显示650

这是我的HTML页面的整个代码:

<html> 
<head></head> 
    <body> 
     <script> 
     if (typeof(addEventSimple)=='undefined') { 
           addEventSimple = function(obj,evt,fn) { 
            if (obj.addEventListener) 
             obj.addEventListener(evt,fn,false); 
            else if (obj.attachEvent) 
             obj.attachEvent('on'+evt,fn); 
           } 
        } 


     var imageResizing={ 

       MAX_WIDTH_ORIGINAL_IMG:650, 

       setMaxSizeOriginalImg:function() 
       { 
        alert(imageResizing.MAX_WIDTH_ORIGINAL_IMG); 

       } 
      }; 


      addEventSimple(window,'load',imageResizing.setMaxSizeOriginalImg); 
    </script> 
</body> 
</html> 

我想了解有什么区别使用this和实际的类名之间,的功能时,在类本身

回答

3

如果你打电话foo.bar()然后thisfoo

您正在通过的值foo.bar。这有点类似于:

baz = foo.bar; 

因此,当它被调用,这是一个有点像baz()

传递,而不是一个新的功能:

addEventSimple(window,'load',function() { imageResizing.setMaxSizeOriginalImg() }); 
相关问题