我正在阅读 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/

10-09 20:29
查看更多