现在,我正在做这样的事情:
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/