语言是AS3,但无关紧要。 几乎所有的代码都可以被忽略,我只是有一系列关于我从未见过的函数格式的具体问题,但是在这个函数中找到了同时讨论bulkLoader:
以下问题与后续代码有关(大量编辑并且没有意义),除了回答问题中要求的内容(几乎100%语法)之外,不需要进一步理解代码:
第1块,问题1:在参数中分配数据类型*是什么意思?
Chunk 2,Question 2:!url与检查url参数的空值相同吗?
第3章,问题3:这一步的目的是什么?我不知道用“或语句”分配值是什么意思(可能不是在这个上下文中意味着什么?),或者空的“{}”表示什么(替代空白数组“[]”?) 。它是什么允许在被调用时输入具有字符串ID的参数(即块5)
第4章,问题4:该函数如何突然将参数作为数组寻址?这是Chunk 3的一部分吗?我假设这是在块5中由“id”设置的值。
第5块,没问题。这是函数调用,它调用ID和优先级(未在函数中显示),但似乎用户可以输入任意数量的参数,只要它们被标记为函数({foo:blah,bar:bleh })在函数中匹配字符串名称为props [“foo”,“bar”]。
有谁知道这里发生了什么?它似乎非常有用,但我只是不明白语法足以找到线索。
// chunk 1
public function add(url : *, props : Object= null ) : LoadingItem {
// chunk 2
if(!url || !String(url)){
throw new Error("[BulkLoader] Cannot add an item with a null url")
}
// chunk 3
props = props || {};
// chunk 4
if (!props["id"] && _allowsAutoIDFromFileName){
props["id"] = getFileName(url.url);
log("Adding automatic id from file name for item:", item , "( id= " + props["id"] + " )");
}
}
// chunk 5
bulkLoader.add("images/image1.jpg", {id:"item1", priority:100});
答案 0 :(得分:2)
问题1:*表示它可以将任何数据类型作为参数
问题2:是的,它是相同的
问题3:如果存在对象,它将获取对象或创建新对象。 {} == new Object()
问题4:只是另一种在Object中添加属性的方法。 props["id"] == props.id