嗨我有基于jQuery的核心代码,我无法触及。它包含一个函数,例如:
Library.Plugin.init = function (param1, param2) {
function doSomething(paramA, paramB, paramC) {
}
};
图书馆&插件只是对象容器。
我希望更改doSomething()函数的某些部分,同时保持其他部分正常工作。 (我认为它被称为重写)
我怎么能实现呢?
提前谢谢
答案 0 :(得分:0)
您无法更改doSomething
本身,但您可以通过在内部安排分支来控制其行为。
例如,一个开关/案例结构取决于函数的一个(或多个)参数:
function doSomething(a, b, c) {
switch (a) {
case 0:
...
break;
case 1:
...
break;
case 2:
...
break;
default:
...
}
}
因此,doSomething
将完全由Library.Plugin.init
控制。
你可以类似地分支一些外部对象的状态:
function doSomething(a, b, c) {
switch (outerObject.state) {
case 0:
...
break;
case 1:
...
break;
case 2:
...
break;
default:
...
}
}
此处doSomething
将由Library.Plugin.init
确定正式的婴儿车a, b, c
,但也受其他任何代码有权更改outerObject.state
的控制。< / p>
这些只是一些例子。各种可能性是无穷无尽的。你主要受限于你的想象力。