當您在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