作业帮 > 综合 > 作业

关于javascript的this在代码中代表什么?为什么一个是this一个是this.form?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/29 17:43:14
关于javascript的this在代码中代表什么?为什么一个是this一个是this.form?
function processData(form){
for (var i = 0; i < form.Beatles.length; i++) {
if (form.Beatles[i].checked) {
break;
}
}
var beatle = form.Beatles[i].value;
var song = form.song.value;
alert("Checking whether"+" "+ song+" "+ "features"+" "+ beatle+" "+ "...");
}
function verifySong(entry){//这里的entry是随便起的也可以叫别的名
var song = entry.value;
alert("Checking whether" +" "+ song+" " + "is a Beatles tune...");
}
Choose your favorite Beatle:
John
Paul
George
Ringo
Enter the name of your favorite Beatles song:

第一个 this 指的是html控件本身,即文本输入框,这里是显示文本框的输入内容,所以传的是this.第一个 this 其实也指的是html控件本身,即按钮,this.form指的是这个按钮所在的form,因为处理form数据是要通过form来取得数据,所以了里传的是this.form
再问: html控件本身指什么呢? 我不理解的是input是包含在form里的,感觉form的范围应该大一些,我理解的是this.form应该是document,form(?对么),那按照我的理解。this就是document么?this指向的是全局作用域(姑且这么叫),还是指的函数的局部作用域呢?
再答: 就是说,你在input范围指定this,就指input 在button范围指定this,就指button 在页面里是可能存在有多个form的,因此”this.form应该是document.form“这个说法是不对的。 document拥有forms属性,但是这个document.forms是个数组。我也查过了,input有没有form这个属性,你这段代码没问题吗?
再问: 代码是网上的,没有问题,我就是不清楚this指向的作用域,关于这方面 我需要学些什么呢,你能给我提供一些参考的资料么,谢谢!!
再答: http://www.w3school.com.cn/ 这个网站非常好,你可以去了解一下Html,Dhtml,和javascript 掌握了这些知识,你提的问题就弄明白了
再问: 多谢!