我有一个名为 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);
警告框显示未定义
。
但是,当我将警报更改为 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
和实际类名之间有什么区别
最佳答案
如果你调用foo.bar()
,那么this
就是foo
。
您正在传递 foo.bar
的值。这有点类似于:
baz = foo.bar;
所以当它被调用时,它有点像baz()
。
传递一个新函数:
addEventSimple(window,'load',function () { imageResizing.setMaxSizeOriginalImg() });
关于javascript - 为什么使用 "this"时函数无法识别成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6183660/