0

语言是 AS3,但没关系。几乎所有的代码都可以忽略,我只是有一系列关于函数格式的具体问题我从未见过,但是在探索bulkLoader时发现了这个函数:

以下问题与后续代码有关(被大量编辑,毫无意义),除了回答问题中要求的内容(几乎是 100% 的语法)之外,不需要进一步理解代码:

块 1,问题 1:在参数中分配数据类型 * 是什么意思?

块 2,问题 2:!url 与检查 url 参数是否为空值相同吗?

Chunk 3,问题3:这一步的目的是什么?我不知道用“或语句”分配值是什么意思(在这种情况下可能不是什么意思?),或者空的“{}”表示什么(替代空白数组“[]”?) . 是否允许在调用时输入带有字符串 ID 的参数(即块 5)

块 4,问题 4:函数如何突然将参数寻址为数组?这是 Chunk 3 所做的一部分吗?我假设这就是块 5 中“id”设置值的方式。

第5块,没问题。这是函数调用,它调用 ID 和优先级(函数中未显示),但似乎用户可以输入任意数量的参数,只要将它们标记为 function({foo: blah, bar: bleh }) 在函数中匹配字符串名称为 props["foo", "bar"]。

有谁知道这里发生了什么?这似乎很有用,但我只是对语法的理解不够,无法提供线索。

//块 1

public function add(url : *, props : Object= null ) : LoadingItem {

//块 2

if(!url || !String(url)){
            throw new Error("[BulkLoader] Cannot add an item with a null url")
        }

//块 3

props = props || {};

//块 4

        if (!props["id"] && _allowsAutoIDFromFileName){
            props["id"] = getFileName(url.url);
            log("Adding automatic id from file name for item:", item , "( id= " + props["id"] + " )");
        }

}

//块 5

bulkLoader.add("images/image1.jpg", {id:"item1", priority:100});    
4

1 回答 1

2

问题1: * 表示它可以接收任何数据类型作为参数

问题2:是的,它是一样的

问题 3:如果 Object 存在,则获取该 Object 或创建一个新 Object。{} == new Object()

问题 4:只是在对象中添加属性的另一种方式。props["id"] == props.id

于 2013-03-02T15:45:55.010 回答