我有一个名为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
与实际类名之间的区别,当函数在类本身中
答案 0 :(得分:3)
如果您致电foo.bar()
,则this
为foo
。
您正在传递foo.bar
的值。这有点类似于:
baz = foo.bar;
因此,当它被调用时,它有点像baz()
。
改为传递新功能:
addEventSimple(window,'load',function () { imageResizing.setMaxSizeOriginalImg() });