使用ajax时,我们使用某些“单词”作为JavaScript中的协议检查。但如果我是对的,那么每个函数都是JS中的一个对象。因此,当创建新的函数实例时,例如
var xhr = new XMLHttpRequest();
这意味着我们创建了一个新的函数实例。现在,在做检查时,我们写了
xhr.onreadystatechange
和
xhr.readyState
以及
xhr.status
等。我们使用点'。'使用xhr的运算符将它们反映为readyStateChange()函数对象的属性。那么,......这是否意味着这些术语是JS函数对象的隐式属性?
由于
答案 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。