2

举个例子,这个语句是

window.Number.constructor.prototype.constructor();

读起来像一条路?

C:\Users\Vista\Documents\Work\text.txt

从左到右

window:\Number\constructor\prototype\constructor()

window根对象在哪里,Number里面是一个对象,里面是一个对象,里面window是一个对象,里面是一个对象吗?constructorNumberprototypeconstructorconstructor()prototype

就像在这个声明中一样

window.document.myForm.textBox.value;

这等于

[object].[object].[object].[object].1

对象实际上并没有相互作用的地方?

或者

实际值是从右到左读取的,每个对象直接作用于它左侧的对象吗?

在哪里

window.Number.constructor.prototype.constructor();

等于

[object] . function Number() { [native code] } . function Function() { [native code] } . function prototype() { [native code] } . function anonymous() { }

作为

window.Number(9.256).toFixed(2);

等于

[object].(9.256).(9.26);

toFixed使用对象的返回值Number并将结果存储为对象的属性的属性在哪里window

正如您可能会说的那样,我在这里有点纠结:) 只是难以理解点概念。我确信 Java 的背景会有所帮助,但不幸的是,我(还)没有。

4

3 回答 3

3

从左到右阅读。每个“事物”都解析为一个对象。对象可以具有属性或功能。属性是另一个对象,它又可以有自己的属性和功能。如果它是一个函数,那么要成为合法的语法,该函数必须返回一个对象。那么右边的链接项必须是该对象的属性(或函数)。

像 jQuery 这样的框架通过让每个方法返回自身的副本来工作,以便可以将方法链接在一起。

在您的第一个示例中,它指的是一系列对象属性,但最后一个是函数。在第二个中,它调用窗口对象上的一个函数,该函数返回一个具有 toFixed() 函数的 Number 对象。

于 2008-12-20T04:40:01.193 回答
0

是的,或者像 C 中的一个字段struct。它实际上是一堆哈希表或字典。所以你的例子

window.Number.constructor.prototype.constructor()

是“窗口对象,一个名为'Number'的项目,其中包含一个名为'constructor'的项目,其中包含一个名为'prototype'的项目---这是命名方法的地方---其中包含一个名为constructor的方法。 " 最后()的意思是“并将其视为没有参数的函数”。

于 2008-12-20T04:06:43.380 回答
0

Left to right.

于 2008-12-20T04:10:01.907 回答