以 a 开头的行.
只是一个被调用的函数/属性previous函数/行的对象。
根据您的具体情况,
Crafty.e("2D, DOM, Text").attr({ w: 100, h: 20, x: 150, y: 120 })
.text("Loading")
.css({ "text-align": "center" });
.text("Loading")
只是对结果的函数调用Crafty.e(...)
.
相似地,.css({ "text-align": "center" })
只是对上一行结果的函数调用.text("Loading")
.
因为在同一条线上,.attr(...)
call 表面上看不出来,但它与其他行中的其他人完全相同。
In expanded就条款而言,上面的示例与执行此操作相同:
var eResult = Crafty.e("2D, DOM, Text");
var attrResult = eResult.attr({ w: 100, h: 20, x: 150, y: 120 });
var textResult = attrResult.text("Loading");
var cssResult = textResult.css({ "text-align": "center" });
正如其他人所说,这只是一种方法chaining调用同一个对象 - 但是,请注意(!)这在所有编程语言中并不总是可能的。 jQuery 和许多其他 JavaScript 框架/库都采用了这种方法来使开发更容易/更顺利,因此,它在 JavaScript 开发中广泛使用。
具体来说,在 JavaScript 中,real语句终止是一个;
(分号)。这意味着一个single语句可以跨越多行。