update private function
by John Allan
JavaScript
//inspired by:
//http://www.htmlgoodies.com/beyond/javascript/accessing-private-functions-in-javascript.html
var initWebpart = function (id) {
function canInit() {
return false;
};
function doOtherStuff() {
var x = 1;
return x;
};
alert('init ' + id + ' = ' + canInit());
};
//replace the above canInit function with one which return true
var update = function () {
var fString, regEx,newFunction, f;
f = initWebpart.toString();
fString = '';
regEx = /(function canInit)([\s\S]*?)(;\s*};)/;
newFunction = 'function canInit () { return true; };';
fString += 'initWebpart = ';
fString += f.replace(regEx, newFunction);
fString += ';';
eval(fString);
};
//comment to see the orginal 'false' returned by canInit
update();
initWebpart('myWebPart');