- Expr = Sizzle.selectors = {
- ......
- filter: {
- "TAG":function(nodeNameSelector) {// 闭包,即这个函数在compile阶段运行完之后,它的activation object仍然保留在内存中
- varnodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();
- returnnodeNameSelector === "*"function () {
- return true;
- } :
- function(elem) {// element matcher,运行时通过作用域链读取闭包中的nodeName
- returnelem.nodeName && elem.nodeName.toLowerCase() === nodeName;
- };
- },
- ......
- }
来源: http://www.cnblogs.com/gaoyush/p/6418828.html