javascript函数对象的'onreadystatechange','readyState'和'status'隐式属性是什么?

时间:2018-03-21 13:31:14

标签: javascript javascript-objects

使用ajax时,我们使用某些“单词”作为JavaScript中的协议检查。但如果我是对的,那么每个函数都是JS中的一个对象。因此,当创建新的函数实例时,例如

  

var xhr = new XMLHttpRequest();

这意味着我们创建了一个新的函数实例。现在,在做检查时,我们写了

  

xhr.onreadystatechange

  

xhr.readyState

以及

  

xhr.status

等。我们使用点'。'使用xhr的运算符将它们反映为readyStateChange()函数对象的属性。那么,......这是否意味着这些术语是JS函数对象的隐式属性?

由于

3 个答案:

答案 0 :(得分:1)

这些属性继承自XMLHttpRequest原型,而不是Function个对象的常规属性。此外,new XMLHttpRequest()会返回非功能Object



let func = new Function()
let xhr = new XMLHttpRequest()

console.log(func.__proto__)
console.log(xhr.__proto__)

console.log(func instanceof Function)
console.log(xhr instanceof Function)




答案 1 :(得分:0)

  

onreadystatechange readyState,responseText,responseXML,status,statusText 是6个XMLHttpRequest对象属性

当我们创建XMLHttpRequest的原型时,这些属性也会随之继承

因此,在创建新的函数实例时,例如, var xhr = new XMLHttpRequest(); ???

不,这里我们创建了一个XMLHttpRequest类型的对象

答案 2 :(得分:0)

这通常是通过javascript中的prototypal inheritance实现的。

你可以在网上找到很多关于此的信息,例如开始阅读here