【问题标题】:overriding const function declaration as key in javascript覆盖 const 函数声明作为 javascript 中的键
【发布时间】:2018-08-28 19:07:11
【问题描述】:

您好,提前谢谢您

我想知道是否有办法覆盖 const 函数?

示例:

const n = function(){alert('bob')};

所以是否可以像这样引用函数:

n.function = function(){alert('for apples')};

我在这里所做的不起作用。

谢谢 再次

【问题讨论】:

  • 为什么要使用const 来更改内容?顺便说一句,上述方法有效,但需要使用n.function(); 调用。
  • 显示的“建议”代码“等效”,例如。 const n = {}; n.some_property = some_value .. const 没有提及命名对象的mutability;只是名称(“n”)总是评估为 same 对象/值(因此总是“反映”到命名对象的更改)..
  • 为什么不起作用?当然,您需要将其称为n.function()。

标签: javascript function constants


【解决方案1】:

您不能覆盖const 声明的变量的值。只需改用let。

let n = function() { alert('bob'); };

n();

n = function() { alert('for apples'); };

n();

【讨论】:

    【解决方案2】:

    来自docs

    常量的值不能通过重新赋值来改变,它 无法重新声明。

    由于函数是对象,尽管您可以向它们添加属性。因此,n.function = function(){alert('for apples')}; 将起作用,因为您将一个名为 function 的属性附加到您的 n 对象。这意味着您可以按照 Nina Scholz 在 cmets 中的建议执行 n.function() 来执行该功能。

    【讨论】:

      猜你喜欢
      • 2019-04-02
      • 2023-03-30
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-15
      • 1970-01-01
      相关资源
      最近更新 更多