当您在JavaScript中调用函数时,如果您错过了传递某个参数的操作,则不会发生任何操作。在JavaScript中强制缺少参数
这使得代码更难调试,所以我想改变这种行为。
我见过 How best to determine if an argument is not sent to the JavaScript function 但我想要一个具有固定数量的代码行类型的解决方案;不要为每个函数输入额外的代码。
我想过通过修改(“first-class”)函数对象的构造函数,用代码自动为所有函数的代码加前缀。
灵感来自 Changing constructor in JavaScript 我第一次测试我是否可以改变函数对象的构造函数,像这样:
function Function2() {
this.color = "white";
}
Function.prototype = new Function2();
f = new Function();
alert(f.color);
但它提醒“不确定”,而不是“白”,所以它是不工作,所以我没有进一步探索这种技术。
你知道任何级别的这个问题的解决方案吗?黑客的JavaScript的胆量是好的,但如何找到缺失的参数的任何其他实用技巧也可以。
这种方法听起来像是一种绝妙的方式来打破依赖于JS中的这种行为的所有第三方代码。 – millimoose
您试图改变该语言的基本方面。这是一个误导性的努力。 – Pointy