好吧,這是出於「學術興趣」(儘管我想在某個地方使用它)。假設我有以下內容:刪除方法本身 - 它有效,但爲什麼,我應該使用它?
function f2()
{
delete Widget.f1;
Widget.f3 = function()
{
console.log("This works.");
}
}
let Widget =
{
f1: function()
{
f2();
}
}
console.log(Widget);
Widget.f1();
console.log(Widget);
Widget.f3();
所以基本上我調用一個方法從對象中刪除自己,並用另一種方法替換。它似乎工作正常。所以這裏是我的兩個問題:
是否有一個很好的(技術)原因爲什麼我不應該這樣做?
從一個「在JavaScript中」的角度來看,這是如何工作的?直覺會說f1在完成之前一直保持「打開」狀態,這意味着我們刪除了一個仍然「打開」的函數。 f2()調用以某種方式「懸掛」出來了嗎?
乾杯
您在執行時不會刪除函數('Widget.f1')。正在執行的函數是'f2'。因此,'f2'可以很好地刪除'Widget.f1'。 –
這是刪除對象屬性'f1'而不是函數。 – MinusFour