別の参照変数を介して、JavaScriptの変数に新しい関数を割り当てようとしています。私は次のコードを持っています:
grp0 =
{
"grp0_0":
{
"grp0_0_0": function()
{
console.log('test', 0, 0, 0);
},
"grp0_0_1": function()
{
console.log('test', 0, 0, 0);
}
},
"grp0_1":
{
"grp0_1_0": function()
{
console.log('test', 0, 1, 0);
},
"grp0_1_1":
{
"grp0_1_1_0": function()
{
console.log('test', 0, 1, 1, 0);
},
"grp0_1_1_1": function()
{
console.log('test', 0, 1, 1, 1);
}
}
},
"grp0_2": function()
{
console.log('test', 0, 2);
}
}
function replaceFunc(group, names)
{
if (typeof group === 'function')
{
console.log('replace function:', names);
group = function()
{
console.log('something else');
}
}
else
{
$.each(group, function(name, value)
{
replaceFunc(value, names.concat(name));
});
}
}
grp0.grp0_1.grp0_1_0();
replaceFunc(grp0, []);
grp0.grp0_1.grp0_1_0();
予想どおり、これは次のように出力します。
test 0 1 0
replace function: ["grp0_0", "grp0_0_0"]
replace function: ["grp0_0", "grp0_0_1"]
replace function: ["grp0_1", "grp0_1_0"]
replace function: ["grp0_1", "grp0_1_1", "grp0_1_1_0"]
replace function: ["grp0_1", "grp0_1_1", "grp0_1_1_1"]
replace function: ["grp0_2"]
test 0 1 0
しかし、私はその最後の行を次のようにしたいと思います。
something else
元の機能を変更するにはどうすればよいですか?
助けてくれてありがとう。