スコープとか関係なしに、関数名が同じなら prototype
は同じものが使用されます。
匿名関数は匿名関数同士で共有されます。
function a () {
function f () { }
f.prototype.foo = 'bar';
}
function b () {
function f () { }
alert (f.prototype.foo); // bar
}
a ();
b ();
alert (
(function () { }).prototype === (function () { }).prototype
); // true
ちなみに { }.prototype
で Object.prototype
を参照してしまいます。