javascript对象不明确的问题
这是一个非常非常奇怪的问题 请参阅此代码:javascript对象不明确的问题,javascript,scope,Javascript,Scope,这是一个非常非常奇怪的问题 请参阅此代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"> <head> <title>TEST</ti
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<title>TEST</title>
<script src="http://misc.fandongxi.com/js/jquery.1.4.js" type="text/javascript"></script>
</head>
<body>
<a href="#" id="p1">click this to change p1.x</a>
<a href="#" id="p2">click this to change p2.x</a>
<input id="p1_val" value="">
<input id="p2_val" value="">
<script language="JavaScript">
a = function(id) {
this.inputid = id+'_val';
othis = this;
$('#'+id).click(function(){
othis.x += 1;
$('#'+othis.inputid).val(othis.x);
});
}
p1 = new a('p1');
p1.x=1;
p2 = new a('p2');
p2.x=1;
</script>
</body>
</html>
我想单击ID p1使p1.x添加1,然后单击P2使P2.x添加1
但是
问题是单击其中任何一个…p2.x将添加1
等待回答
非常感谢:
我不擅长英语……也许我没有把问题弄清楚 您需要对函数的范围进行调整。目前它被用作全局变量
var othis = this;
我不确定你的总体目标是什么,但你问的错误是:
othis = this;
申报时应注明:
目前,只有一个othis被共享,因为它是一个全局变量,在使用它之前没有
var othis = this;