Ваша терминология отключена: Function()
- это функция конструктор , тогда как function() {...}
- это литерал функции .
И нет, я не думаю, что есть портативный способ сделать это, но может быть для старых версий Firefox: если я правильно помню, когда-то можно было использовать with() {...}
, чтобы скрыть встроенный конструктор функции и Firefox будут использовать новые даже для литералов.
Кажется, это больше не работает:
var overload = {
Object : function() {}
};
overload.Object.prototype.foo = 'bar';
with(overload) {
document.writeln(new Object().foo);
document.writeln({}.foo);
}