在函数中传this参数遇到的问题......高分请进。。。。。。。

yesj 2005-10-19 03:14:29
js对象中有个类Module,Module有个函数(生成一个div):
function Module.prototype.generate(){
obj=this
var div=document.createElement("DIV");
div.innerHTML="<table><tr>"
+"<td><A onclick='hideModule(obj)' href='#'>"
+"<IMG alt='delete' src='........'></A></td>"
+"</tr></table>"
..........
}
这里必须设置obj=this才能工作,但是如果我连续生成多个Module对象,就把以前Module对象中hideModule(obj)中的obj替换成后来生成的Module对象了,而不是设置时的本身那个对象。。。请问该如何解决啊?
...全文
110 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
meizz 2005-10-19
  • 打赏
  • 举报
回复
换一种全局变量:
<SCRIPT LANGUAGE="JavaScript">
<!--
function newClass(name)
{
this.name = name;
}
newClass.prototype.show = function()
{
alert(this.name);
}
newClass.prototype.toString = function()
{
newClass.handle = this;
}
var a = new newClass("meizz");
a.toString();
a.show();
//-->
</SCRIPT>
<input type=button value=ok onclick="newClass.handle.show()">
hbhbhbhbhb1021 2005-10-19
  • 打赏
  • 举报
回复
你可以在外面
new Module对象啊,这样就两个了
不能在里面,你想如果NEW里面还有NEW,那这里面不还有NEW,不是死了
yesj 2005-10-19
  • 打赏
  • 举报
回复
必须这样写:obj=this 而不能 var obj=this,也不能直接传this进去,js真是。。。
hbhbhbhbhb1021 2005-10-19
  • 打赏
  • 举报
回复
为什么不重新new一个啊
yesj 2005-10-19
  • 打赏
  • 举报
回复
简单的讲就是obj是个全局变量,后来给obj赋值把前面obj的值给冲掉了,所以会引起不正确的结果!!请问大家该如何解决啊???
梅雪香 2005-10-19
  • 打赏
  • 举报
回复
似乎是内存分配的问题
meizz 2005-10-19
  • 打赏
  • 举报
回复
没看明白你的想法

87,919

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧