我对XMLHTTPREQUEST()感到困惑

时间:2016-07-22 11:22:19

标签: javascript

我知道XmlHttpRequest是一个对象。但是,当我们使用它的属性和方法时,为什么要创建一个新对象呢?例如:

var xmlhttp = new xmlhttprequest();

我们使用xmlhttp.readystate或xmlhttp.status属性。为什么我们不能直接使用xmlhttprequest.readysate或xmlhttprequest.status。

为什么我们在此之后使用括号()?它不是一个功能吗?

请帮忙。

2 个答案:

答案 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的实例。