你如何阅读JavaScript中的点符号?

时间:2008-12-20 03:58:35

标签: javascript notation

为了举例,这句话是

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

读起来像路径?

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

从左到右

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

其中window是根对象,Numberwindow内的对象,constructorNumber内的对象,prototypeconstructorconstructor()内的对象是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背景会有所帮助,但不幸的是,我还没有(还有)。

3 个答案:

答案 0 :(得分:3)

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

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

在你的第一个例子中,它指的是一个对象属性链,除了最后一个是一个函数。在第二个中,它调用window对象上的一个函数,该函数返回一个具有toFixed()函数的Number对象。

答案 1 :(得分:0)

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

window.Number.constructor.prototype.constructor()

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

答案 2 :(得分:0)

从左到右。