我正在阅读 Crafty tutorial 并遇到了一个我找不到文档的代码片段。搜索标点符号太难了。
有问题的行 11 和 12 跟随 Crafty.e
行并以 .text
和 .css
开头。这些属性属于什么对象?
//the loading screen that will display while our assets load
Crafty.scene("loading", function () {
//load takes an array of assets and a callback when complete
Crafty.load(["sprite.png"], function () {
Crafty.scene("main"); //when everything is loaded, run the main scene
});
//black background with some loading text
Crafty.background("#000");
Crafty.e("2D, DOM, Text").attr({ w: 100, h: 20, x: 150, y: 120 })
.text("Loading")
.css({ "text-align": "center" });
});
//automatically play the loading scene
Crafty.scene("loading");
这会在规范中的哪个位置?
最佳答案
以 .
开头的行只是在前一个函数/行的对象上调用的函数/属性。
在您的具体情况下,
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(...)
调用在外部不可见,但它与其他行中的其他调用完全相同。在扩展的术语中,上面的示例与执行此操作相同:
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" });
正如其他人所述,这只是将调用链接到同一对象的一种方法-但是,请注意(!)并非在所有编程语言中都总是这样。 jQuery 和许多其他 JavaScript 框架/库都采用这种方法来使开发更容易/更流畅,因此,它在 JavaScript 开发中很普遍。
特别是在JavaScript中,实际语句终止是
;
(分号)。这意味着单个语句可以跨越多行。关于javascript - 以点开头的行是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16138678/