Javascript函数()文本重载
我一直很好奇是否有可能重载函数文字,比如你可以用函数:Javascript函数()文本重载,javascript,constructor,debugging,overloading,Javascript,Constructor,Debugging,Overloading,我一直很好奇是否有可能重载函数文字,比如你可以用函数: var test=Function; Function=function(arg) { alert('test'); return test(arg); } var b=Function("alert('a')"); var c=Function("alert('x')"); b(); c(); 当然,您可以猜到这是调试整个项目的好方法。然而,我在这里所做的任何努力都是徒劳的 各位专家的问题是: 也许有什么我不知
var test=Function;
Function=function(arg)
{
alert('test');
return test(arg);
}
var b=Function("alert('a')");
var c=Function("alert('x')");
b();
c();
当然,您可以猜到这是调试整个项目的好方法。然而,我在这里所做的任何努力都是徒劳的
各位专家的问题是:
您的术语已关闭:
Function()
是函数构造函数,而Function(){…}
是函数文本
不,我不认为有一种可移植的方法可以做到这一点,但对于旧版本的Firefox可能有:如果我没记错的话,曾经可以使用with(){…}
来隐藏内置构造函数,Firefox甚至可以使用新的构造函数来隐藏文本
这似乎不再有效:
var overload = {
Object : function() {}
};
overload.Object.prototype.foo = 'bar';
with(overload) {
document.writeln(new Object().foo);
document.writeln({}.foo);
}