関数参照「go」を別の関数「redefineFunction」に渡し、「redefineFunction」内で「go」を再定義したい。Johnathan Snook によると、関数は参照によって渡されるため、redefineFunction() に渡したときに go() が再定義されない理由がわかりません。私が見逃しているものはありますか?
// redefineFunction() will take a function reference and
// reassign it to a new function
function redefineFunction(fn) {
fn = function(x) { return x * 3; };
}
// initial version of go()
function go(x) {
return x;
}
go(5); // returns 5
// redefine go()
go = function(x) {
return x * 2;
}
go(5); // returns 10
// redefine go() using redefineFunction()
redefineFunction(go);
go(5); // still returns 10, I want it to return 15
または、私のフィドルhttp://jsfiddle.net/q9Kft/を参照してください