【问题标题】:understanding Dojo closure example了解 Dojo 闭包示例
【发布时间】:2015-02-12 00:04:49
【问题描述】:

在 Dojo 文档中有一个例子:

require([
"dojo/query",
"dojo/_base/array",
"dojo/dom-construct",
"dojo/domReady!"
], function(query, array, domConst){
function topLinks(){
    var headings = query('h2,h3');

    array.forEach(headings, function(elm){
        var topLink = domConst.create("a", {
            href: "#top",
            innerHTML: "^top"
        });

        domConst.place(topLink, elm, "before");
    });
}
});

我假设 function(elm) 是一个闭包,'elm' 是 element 的缩写,在这种情况下,创建了 2 个闭包,第一个闭包是 elm = h2,第二个闭包是 elm = h3。这是正确的吗?

【问题讨论】:

    标签: javascript dojo closures


    【解决方案1】:

    与 CSS 一样,dojo/query 支持分组选择器。 h2,h3 将匹配所有 h2h3 元素,headings 将是一个 dojo/NodeList 与文档中找到的所有 h2h3 元素。 array.forEach 只是按顺序遍历整个NodeList,因此每次通过函数elm 都会引用下一个h2h3 元素。

    【讨论】:

    • 好的,DOM 中可以有很多 h2、h3。但是h2、h3这两个选择器不是一个吗?
    • 是的,从技术上讲,它们被认为是分组选择器,所以也许我没有在那里选择最好的词。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    相关资源
    最近更新 更多