我有两个jquery函数(父函数和覆盖函数)
父功能:
( function ( $ )
{
var one = null;
var two = {};
$.fn.method = function(){
// parent code;
}
})( jQuery );
OverRide功能:
( function ( $ )
{
$.fn.method = function(){
// override code;
}
})( jQuery );
正在按预期工作。但是当我尝试访问变量一或两个时,我不能。你知道为什么吗?是否有任何选项可以在不修改父项的情况下从覆盖函数访问变量1和2?
注意:在我的情况下,parent和override是两个单独的js文件合并到一个公共js,同时通过ant放置构建。
答案 0 :(得分:3)
不,你不能。你在这里有一个闭包,关于闭包的一点是你无法从其他地方访问它们的变量。
如果要访问它们,则必须添加访问者:
( function ( $ )
{
var one = null;
var two = {};
$.fn.method = function(){
// parent code;
}
$.fn.getOne = function() {
return one;
};
$.fn.setOne = function(n) {
return one = n;
};
})( jQuery );
您可能对this related question感兴趣。