1
如果我想要一個函數在第一次運行時做一些不同的事情,我可以檢查它每次運行以確定它是否是第一次,或者我可以更改函數;像這樣:是一種自修改功能嗎?
foo=function(a,b){
...do something1...
foo=_foo;
}
_foo=function(a,b){
...do something2...
}
這是不好的;如果是這樣,爲什麼?有一個更好的方法嗎?我特別期待在JavaScript中實現這一點,但其他語言點將被考慮。
這實際上取決於您要如何修改該功能。通常,這用於緩存,所以這只是該功能的用戶不應該注意的性能增強。如果是這樣的話,那很好。如果沒有,您可能需要詳細說明您的具體情況。 – kba
我通常使用一個靜態變量(屬性)作爲標誌來處理「首次運行」場景 –
幾乎總是很糟糕。回到當天,我們會爲資源受限系統編寫自修改代碼,其中您的瀏覽器不是其中一個。即使是記憶也不是一個很好的藉口,國際海事組織,但這不是一個技術性的辯論。 –