gpt4 book ai didi

javascript - 为什么函数中需要参数

转载 作者:行者123 更新时间:2023-11-28 05:08:01 25 4
gpt4 key购买 nike

我正在尝试学习和理解 XML。我在 W3schools 上找到了这个例子。函数中有一部分获取参数 xml。我不明白为什么需要这个参数有人可以向我解释一下吗?

function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "cd_catalog.xml", true);
xhttp.send();
}
function myFunction(xml) {
var i;
var xmlDoc = xml.responseXML;
var table="<tr><th>Artist</th><th>Title</th></tr>";
var x = xmlDoc.getElementsByTagName("CD");
for (i = 0; i <x.length; i++) {
table += "<tr><td>" +
x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +
"</td><td>" +
x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +
"</td></tr>";
}
document.getElementById("demo").innerHTML = table;
}

最佳答案

xhttp.onreadystatechange = function() { 
if (this.readyState == 4 && this.status == 200) {
console.log(this);
}
};

this 关键字指的是某个函数正在运行的上下文。它可能是一个对象,通常是它的窗口。示例

function hi(){
alert(this);//window
}
function person(){
this.hi=hi;
}
Mark=new Person();
Mark.hi();//mark

在您的示例中,这是 xml 对象。例如,您可以访问 this.responseXML。但是 js 的行为与其他语言不同:

function inyourxmlcallback(){
alert(this);//xml
hi();//window
}

函数调用不会自动将 this 绑定(bind)到被调用的函数。您需要手动执行:

hi.call(this);//xml object

W3 学校只是将上下文作为变量传递,以便稍后使用。示例:

var test=this;
alert(test);//window

关于javascript - 为什么函数中需要参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41596186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com