我正在调试别人写的代码(使用Mootools作为基础库),我发现了这个函数:
[note, $H(options.text).getKeys()].flatten().each(function(option){
// bunch of stuff happening
});
我以前从未见过这种语法,带有方括号和$H符号(例如
[note, $H(options.text).getKeys()]
)。有人能解释一下它是如何工作的,或者给我提供相关参考资料吗?谢谢!
我正在调试别人写的代码(使用Mootools作为基础库),我发现了这个函数:
[note, $H(options.text).getKeys()].flatten().each(function(option){
// bunch of stuff happening
});
[note, $H(options.text).getKeys()]
)。有人能解释一下它是如何工作的,或者给我提供相关参考资料吗?var a = [1,2,3];
var b = [4,5,6];
var c = [a, b].flatten();
alert(c);
数组[1,2,3]
和[4,5,6]
被合并(或“展开”)成一个单一的数组,1,2,3,4,5,6
。
在您的代码中:
[note, $H(options.text).getKeys()].flatten()
< p > note
(也许是另一个数组)和 getKeys()
返回的内容被展开成一个单一的数组。然后,在每个元素上执行一个函数。
更新:
$H function 是Mootools中的一个实用函数,它是Hash()的快捷方式。
$H
的唯一其他用法。 - julio$H
是Mootools中Hash()
的快捷方式 - http://mootools.net/docs/more/Types/Hash#H - Mike Christensen$
。虽然其他的 $...
函数已经被弃用或替换成其他名称,所以我会谨慎使用它作为快捷方式。(顺便说一下,我也可能完全错了。)我在想的具体例子是 $clear
,已经被弃用,推荐使用 clearTimeout();
。 - Julian H. Lam[note, $H(options.text).getKeys()]
最有可能变成:
[note, ["string1", "string2"]]
所以它返回一个数组。因此,["whatever note is", ["Another array", "of objects"]]
需要被展平为:
["whatever note is", "Another array", "of objects"]
[]
是一个数组字面量。$H()
调用了一个名为$H
的函数。这与var myarray = []; myarray[0] = 'some val'; myarray[1] = some_func('some arg').some_other_func();
没有区别。 - RightSaidFred