为了举例,这句话是
window.Number.constructor.prototype.constructor();
读起来像路径?
C:\Users\Vista\Documents\Work\text.txt
从左到右
window:\Number\constructor\prototype\constructor()
其中window
是根对象,Number
是window
内的对象,constructor
是Number
内的对象,prototype
是constructor
和constructor()
内的对象是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背景会有所帮助,但不幸的是,我还没有(还有)。
答案 0 :(得分:3)
从左到右阅读。每个“东西”都解析为一个对象。对象可以具有属性或功能。属性是另一个对象,它可以具有自己的属性和功能。如果它是一个函数,那么作为合法语法,该函数必须返回一个对象。然后,右边的链接项必须是该对象的属性(或函数)。
像jQuery这样的框架通过让每个方法都返回自身的副本来实现,这样方法可以链接在一起。
在你的第一个例子中,它指的是一个对象属性链,除了最后一个是一个函数。在第二个中,它调用window对象上的一个函数,该函数返回一个具有toFixed()函数的Number对象。
答案 1 :(得分:0)
是的,或者像C中struct
中的字段一样。它实际上是一堆哈希表或字典。那你的例子
window.Number.constructor.prototype.constructor()
是“窗口对象,一个名为'Number'的项,其中包含一个名为'constructor'的项,其中包含一个名为'prototype'的项 - 这是方法命名的地方---其中包含一个方法命名构造函数。“最后的()
意味着“并将其视为一个没有参数的函数。”
答案 2 :(得分:0)
从左到右。