好吧,这是出于“学术兴趣”(尽管我想在某个地方使用它)。假设我有以下内容:删除方法本身 - 它有效,但为什么,我应该使用它?
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