我知道XmlHttpRequest是一个对象。但是,当我们使用它的属性和方法时,为什么要创建一个新对象呢?例如:
var xmlhttp = new xmlhttprequest();
我们使用xmlhttp.readystate或xmlhttp.status属性。为什么我们不能直接使用xmlhttprequest.readysate或xmlhttprequest.status。
为什么我们在此之后使用括号()?它不是一个功能吗?
请帮忙。
答案 0 :(得分:1)
这是一个构造函数:更多信息https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/XMLHttpRequest
您可以创建自己的工具,看看它是如何工作的。
function Person(name) {
this.name = name;
}
var me = new Person('Kirill'); //now you can access it via me.name
所以这里一个人用名字初始化 - XMLHttpRequest
也是如此:它必须先被初始化才能使用它的属性
答案 1 :(得分:0)
基本上XMLHttpRequest对象是一个接口。根据{{3}}
XMLHttpRequest对象是脚本公开的接口 允许脚本执行HTTP客户端功能的引擎 提交表单数据或从删除网站加载数据。
如果您检查类型,请查看结果:
CREATE TABLE `sms_codes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`code` varchar(6) NOT NULL,
`status` int(1) NOT NULL DEFAULT '0',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`)
)
ALTER TABLE `sms_codes`
ADD CONSTRAINT `sms_codes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
因此,当您使用console.log("XMLHttpRequest is a "+typeof XMLHttpRequest);
console.log("new XMLHttpRequest() is an "+typeof new XMLHttpRequest());
时,这意味着您正在使用new XMLHttpRequest()
构造函数创建XMLHttpRequest
的实例。