我正在学习Javascript,我只想完全了解这些方法的来源:
我理解他们做了什么,以及如何使用它们。我知道“文档”是主要对象,你可以使用“点”表示法或“['']”来使用对象的键来访问值。但是当我在Chrome控制台中输入时,我似乎无法在Document对象下找到getElementID:console.dir(document)
在Python中,我们有Python附带的特殊方法,这些是“特殊”方法吗?那么他们确实需要特别成为Document对象的一部分吗?
我知道这可能是一个愚蠢的问题,但我只是想完全了解一切来自哪里。谢谢你们,我感谢你的帮助。
此致
安东尼
答案 0 :(得分:4)
document
对象是window
对象的子对象。这些被视为"浏览器内置全局变量"在JavaScript中。
窗口对象的子属性可以像console.log(document)
一样直接访问,但也可以与console.log(window.document)
一起使用,这是同样的事情。
getElementById
原型下存在documents
等方法。您可以使用console.dir(Document.prototype)
。
您可以在此处详细了解原型 - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype
希望能回答你的问题!
答案 1 :(得分:2)
这些方法存在于__proto__
内,它们是document
对象prototype的一部分。
答案 2 :(得分:1)
使用的一个很好的类比是Python的标准库。 (请注意,我不熟悉Python,所以如果我有任何错误,请随时纠正我)。
Python安装附带一个标准库 - 一组对象及其相应的方法,它们捆绑在Python运行时中。
以类似的方式,Javascript在浏览器环境中运行时,也有一个标准库' - 文档对象模型或DOM。这是捆绑到JavaScript运行时的对象集合及其对应的方法。其中一些对象包括window
,location
和document
。而且,这些捆绑对象中的每一个都附加了几种方法。因此,在您的示例中,捆绑的document
对象有多种方法,包括您的getElementById
等。
当您执行console.dir
时,它们不可见这一事实并不意味着它们不会存在于document
对象上。 console.dir
可能只是将它们从输出中排除(为什么?我不能说)。
但如果你console.log
document
对象的各种属性,你会发现它们都在那里。