问一下JS中THIS的用法

hopperhuang 2016-05-28 06:10:48
十分头疼


<!DOCTYPE html>
<html>
<body>
<input type = "button" value = "欢迎比尔盖茨" id = "0" onclick = "welcome();" /><br />
<input type = "button" value = "欢迎哈利波特" id = "1" onclick = "welcome();" /><br />
<input type = "button" value = "欢迎AAB" id = "2" onclick = "welcome();" /><br />
<script>
var person = new Array();
person = [ ["比尔盖茨","工程师" ],["哈利波特","巫师"],["AAB","abc"] ]
var x = document.getElementById("0").id;
var x = x + 1;
document.write(person[0][0] + x )
function welcome(){
var i=this.value;
alert(i);


}









</script>

</body>
</html>



为什么每次点击按钮提示的值都是UNDEFINED啊,我明明已经将this.value 赋予给i了呀。
this中的参数到底是怎么传递的,大神们跟我说说啊。
...全文
90 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
slwsss 2016-05-29
  • 打赏
  • 举报
回复
hopperhuang 2016-05-29
  • 打赏
  • 举报
回复
引用 4 楼 slwsss 的回复:
谁调用的就指向谁 http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html
谢谢!!
hopperhuang 2016-05-28
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
function welcome(t){ var i=t.value; alert(i); } onclick = "welcome(this);" />
谢谢大神的回答,能不能详细点给我解说THIS的用法呢?什么时候是指代这个元素,什么时候是指代WINDOW呢?
cocotsau 2016-05-28
  • 打赏
  • 举报
回复

function welcome() {
    var i = this.value;
    alert(this);//-> [object Window],这里的this指向的是window对象
    alert(i);
}
//改写成
function welcome(obj){
    alert(obj.value);
}

<input type="button" onclick="welcome(this);" value="button" >
slwsss 2016-05-28
  • 打赏
  • 举报
回复
function welcome(t){ var i=t.value; alert(i); } onclick = "welcome(this);" />

87,910

社区成员

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

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