【发布时间】:2012-06-28 21:28:05
【问题描述】:
当你在 JavaScript 中调用一个函数并且你错过了传递一些参数时,什么都不会发生。
这使得代码更难调试,所以我想改变这种行为。
我见过 How best to determine if an argument is not sent to the JavaScript function 但我想要一个输入代码行数恒定的解决方案;不要为每个函数输入额外的代码。
我曾考虑通过修改 ("first-class") Function 对象的构造函数来自动为所有函数的代码添加前缀。
灵感来自 Changing constructor in JavaScript 我首先测试了是否可以更改 Function 对象的构造函数,如下所示:
function Function2 () {
this.color = "white";
}
Function.prototype = new Function2();
f = new Function();
alert(f.color);
但它会提醒“未定义”而不是“白色”,所以它不起作用,所以我没有进一步探索这种技术。
您知道任何级别的此问题的解决方案吗?破解 JavaScript 的内脏是可以的,但任何其他关于如何查找缺失参数的实用技巧也可以。
【问题讨论】:
-
这种方法听起来是一种绝妙的方法,可以破坏所有依赖 JS 中这种行为的第三方代码。
-
您正试图改变语言的一个基本方面。这是一种误入歧途的努力。
标签: javascript