javascript - 有没有更好的方法将 const 函数添加到 javascript 对象?

标签 javascript constants javascript-objects

现在,我正在做这样的事情:

var myObject = {}

const action = () => {
    console.log("say hello")
}

myObject.act = action

这导致输出:

say hello

但是有没有更快的方法来做到这一点,比如 const lambda(或其他)?

很像:

// This is psuedocode.
myObject.myConstAction = const lambda (){
    console.log("I won't change.")
}

我希望属性 .myConstAction 不能被重新分配或覆盖。

最佳答案

您弄错了代码的作用。

action 是一个常量,它的值不能改变。

myObject.act 被分配了 action 值的副本(即对同一函数的另一个引用)。 myObject.act 没有什么不变的。


您可以将函数分配给 act 并使该属性只读,如下所示:

var myObject = {}
Object.defineProperty(myObject, "act", {
  value: action = () => {
    console.log("say hello");
  },
  writable: false
});

myObject.act();
// The next line has no effect because the property is not writable
myObject.act = () => console.log("Overwritten!");
myObject.act();

关于javascript - 有没有更好的方法将 const 函数添加到 javascript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49585644/

相关文章:

javascript - 如何从 Angularjs 中的指令禁用 ng-show

java - 如何实现包装 SubtitleDecoderFactory.DEFAULT 的自定义 SubtitleDecoderFactory,这是一个常量实例

php - 为什么非法常量名称在使用 define() 时不会抛出错误?

javascript - 如何将数据库系统添加到WebGL应用程序

javascript - 如何使 child 订单随机化器具有重置回初始订单的选项?

javascript - JS中的类继承和私有(private)变量

ruby - 为什么 Array.constants 不显示 Object 类中的常量列表?

javascript - 如何在js全年日历中选择范围并添加事件

javascript - 了解 Crockford 介绍的高级方法

JavaScript/JSON : Get unknown property of an object