javascript中this的用法的一些疑问
先贴一段原代码:<!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><title>鼠标事件</title></...
先贴一段原代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>鼠标事件</title>
</head>
<body>
<div id="onmouse" onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color:green;width:120px;height:20px;padding:40px;color:#ffffff;">把鼠标移到上面</div>
<script>
function mOver(obj)
{
obj.innerHTML="谢谢";
}
function mOut(obj)
{
obj.innerHTML="把鼠标移到上面";
}
</script>
</body>
</html>
我把上述代码改为:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>鼠标事件</title>
</head>
<body>
<div id="onmouse" onmouseover="mOver()" onmouseout="mOut()" style="background-color:green;width:120px;height:20px;padding:40px;color:#ffffff;">把鼠标移到上面</div>
<script>
function mOver()
{
this.innerHTML="谢谢";
}
function mOut()
{
this.innerHTML="把鼠标移到上面";
}
</script>
</body>
</html>
此代码就不能实现onmouse事件了,我的疑问是,此处的形参obj,在调用函数时候不也是被this代替了吗?那么直接写为什么不能实现?
新手 求解答 展开
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>鼠标事件</title>
</head>
<body>
<div id="onmouse" onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color:green;width:120px;height:20px;padding:40px;color:#ffffff;">把鼠标移到上面</div>
<script>
function mOver(obj)
{
obj.innerHTML="谢谢";
}
function mOut(obj)
{
obj.innerHTML="把鼠标移到上面";
}
</script>
</body>
</html>
我把上述代码改为:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>鼠标事件</title>
</head>
<body>
<div id="onmouse" onmouseover="mOver()" onmouseout="mOut()" style="background-color:green;width:120px;height:20px;padding:40px;color:#ffffff;">把鼠标移到上面</div>
<script>
function mOver()
{
this.innerHTML="谢谢";
}
function mOut()
{
this.innerHTML="把鼠标移到上面";
}
</script>
</body>
</html>
此代码就不能实现onmouse事件了,我的疑问是,此处的形参obj,在调用函数时候不也是被this代替了吗?那么直接写为什么不能实现?
新手 求解答 展开
4个回答
展开全部
<div id="onmouse" onmouseover="mOver(this)" onmouseout="mOut(this)" ,此时的this表示div,
<div id="onmouse" onmouseover="mOver()" onmouseout="mOut()" ,你没有指定任何参数,而在
function mOver()
{
this.innerHTML="谢谢";
}
function mOut()
{
this.innerHTML="把鼠标移到上面";
}
你使用了this,此时的this属于当前使用它的那个对象,而这个东西是在函数定义的使用的,所以它属于的window,两个东西表示的根本就不是同一个东西,虽然都是this,但是意义不一样
<div id="onmouse" onmouseover="mOver()" onmouseout="mOut()" ,你没有指定任何参数,而在
function mOver()
{
this.innerHTML="谢谢";
}
function mOut()
{
this.innerHTML="把鼠标移到上面";
}
你使用了this,此时的this属于当前使用它的那个对象,而这个东西是在函数定义的使用的,所以它属于的window,两个东西表示的根本就不是同一个东西,虽然都是this,但是意义不一样
展开全部
要明白这个问题 你应该先了解this指的是什么
function mOver()
{
this.innerHTML="谢谢";
}
这个this对象所指向的是整个window全局变量 而不是id="onmouse"
这个div 所以 不会出现效果
function mOver()
{
this.innerHTML="谢谢";
}
这个this对象所指向的是整个window全局变量 而不是id="onmouse"
这个div 所以 不会出现效果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在上面传过来的this是当前的操作对象,下面你写在js中的这个this是window对象
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
形参obj传递进来的this代表的当前DOM对象,而如果不以形参传递进来this则是代表的当前window对象。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询