cuốn sách gpt4 ai đã làm

javascript new 关键字 - 返回内部匿名函数内创建的新对象

In lại Tác giả: Walker 123 更新时间:2023-11-28 16:11:21 hai mươi bốn 4
mua khóa gpt4 Nike

我正在阅读一本关于 DOM 脚本的书,当他们谈论 Ajax 时,书中出现了以下函数。

function getHTTPObject() {

if(typeof XMLHTTPRequest == "undefined")
XMLHTTPRequest = function() {
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0");}
catch(e) {}

//several more fall through try/catch blocks attempting
//to create different XMLHTTP objects.
//If none succeed...

trả về sai;
}

return new XMLHTTPRequest();
}

如果尝试在分配给 XMLHTTPRequest 的内部匿名函数中创建 ActiveXObject 时在 try/catch block 中使用 new 关键字,为什么在 getHTTPObject 末尾返回 XMLHTTPRequest 的结果时再次使用 new 关键字()?

看起来它正在返回一个新的、新的对象。

biên tập

我大致了解代码的目的是什么,检查 XMLHTTPRequest 构造函数是否存在,如果不存在,则定义一个尝试创建 XMLHTTP ActiveXObjects 的构造函数。到目前为止我和你在一起。

假设 XMLHTTPRequest 未定义。

XMLHTTPRequest 被分配给内部函数构造函数。

然后在 getHTTPRequest 的底部调用 XMLHTTPRequest。

在 XMLHTTPRequest 中,创建一个新的 ActiveXObject 并将其返回给调用者,在本例中为 getHTTPObject。现在 getHTTPObject 又将该对象返回给它的调用者。但同样,为什么这一行是:

return new XMLHTTPRequest() 

如果 new (即对象实例化)已经出现在 XMLHTTPRequest() 的定义/范围内的 try block 的代码中,是否需要 new ?为什么不简单地:

return XMLHTTPRequest()

谢谢大家的回答。很有可能,甚至很可能,我只是对 JS 构造函数语法没有足够强的掌握,这就是让我陷入困境的原因。

câu trả lời hay nhất

返回立即发生并退出代码块。这些返回中只有一项会受到影响。

关于javascript new 关键字 - 返回内部匿名函数内创建的新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12851743/

hai mươi bốn 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress