对象引用使用“this”的顺序

时间:2013-12-23 11:20:21

标签: html oop dom object

在MDN的JavaScript指南中,我找到了一个例子

<form name="myForm">
  <label>Form name:<input type="text" name="text1" value="Beluga"></label>
  <input name="button1" type="button" value="Show Form Name"
     onclick="this.form.text1.value = this.form.name">
</form>

当我们点击<input>时,我们对它的父(this.form...)有一个奇怪的反向引用。这对我来说似乎很奇怪,因为我总是以“有序”的方式使用对象引用。对象的属性(表单节点的输入)如何以这种方式引用它的对象(this.form)?或者我是否混淆了面向对象编程与DOM模型?

1 个答案:

答案 0 :(得分:2)

您可以这样做,因为事件处理程序中的this引用了按钮的DOM元素(HTMLInputElement),并且这些DOM元素具有属性form,指的是他们所处的形式(如果他们在一起)。这就是DOM的定义方式。 (不要让这些链接欺骗你,这不是一个新的HTML5事情;这种方式已经很久了:Older HTMLInputElement spec。)

在树结构(DOM和其他)中,叶节点对其父节点的引用并不罕见(因为在树中,它们只能有一个父节点)。这只是该概念的延伸。