我想扩展Dojo类_Scroller BUt问题的发生是因为它在另一个函数的范围内声明了
(function(){
var nodeKids = function(inNode, inTag){
var result = [];
var i=0, n;
while((n = inNode.childNodes[i++])){
if(getTagName(n) == inTag){
result.push(n);
}
}
return result;
};
var divkids = function(inNode){
return nodeKids(inNode, 'div');
};
dojo.declare("dojox.grid._Scroller", null, {
constructor: function(inContentNodes){
....
}
}
};
所以当我这样做以扩展滚动函数
时
grid1.scroller.findScrollTop = dojo.hitch(grid1.scroller, function(inRow){
divkids()
});
它无法找到一些功能。例如,你可以看到的divkids()不是全局的,而是位于某个函数的范围内; 请帮忙;。
答案 0 :(得分:0)
您不能在闭包中访问私有变量,除非它们是从闭包范围之外的其他对象引用的。所以,如果你需要使用divkids()中的代码,你可以复制该函数的内容和它引用的任何私有东西,或者你可能必须直接编辑文件(把你的东西放在闭包中,或者使它成为你需要的部分不是私人的)