为什么在使用“this”时函数不识别成员

时间:2011-05-31 06:13:46

标签: javascript

我有一个名为imageResizing的类。它有一个成员MAX_WIDTH_ORIGINAL_IMG,定义为650:

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与实际类名之间的区别,当函数在类本身中

1 个答案:

答案 0 :(得分:3)

如果您致电foo.bar(),则thisfoo

您正在传递foo.bar。这有点类似于:

baz = foo.bar;

因此,当它被调用时,它有点像baz()

改为传递新功能:

addEventSimple(window,'load',function () { imageResizing.setMaxSizeOriginalImg() });