Javascript 重写闭包中的私有函数
我有这个难题。我下载了一个jQuery插件,它具有以下结构Javascript 重写闭包中的私有函数,javascript,jquery,jquery-plugins,closures,Javascript,Jquery,Jquery Plugins,Closures,我有这个难题。我下载了一个jQuery插件,它具有以下结构 (function($, undefined) { function a() { ... } $.fn.fullCalendar = function(options) { ... var avar = a(); ... } })(jQuery); 我的任务是修改插件(我需要覆盖'a'函数),但我不能触及核心,我需要从外部文件修改它。所以问题是,我不知道是否有任何方法可以访问未命名的闭包,第二种方法是否可以
(function($, undefined) {
function a() {
...
}
$.fn.fullCalendar = function(options) {
...
var avar = a();
...
}
})(jQuery);
我的任务是修改插件(我需要覆盖'a'函数),但我不能触及核心,我需要从外部文件修改它。所以问题是,我不知道是否有任何方法可以访问未命名的闭包,第二种方法是否可以覆盖其中的私有函数
更具体地说:插件是:我需要覆盖内核中的“daySegHTML”函数
谢谢你的建议。你不能覆盖闭包中的函数(至少如果它们不暴露于外界的话)。修改它的唯一机会是修改源代码本身(如果许可证允许的话)
闭包用于向用户“隐藏”功能。这可能是google maps等强大javascript库存在的唯一原因。这是完全不可能的。为什么您要覆盖函数而不是围绕函数编写?最糟糕的情况是,直接修改源代码。“围绕它写”是什么意思?a()是fullCalendar()的一部分。我想尝试重写函数中的特定if块或循环。不行。你必须覆盖整个东西。那么我如何修改插件的这部分功能呢?好的,我会尝试找到另一种方法来实现我的目标。谢谢大家的建议。以下是函数的实际定义(确认它不能被重写),以供参考