现在,我正在做这样的事情:
predict()
这导致输出:
var myObject = {}
const action = () => {
console.log("say hello")
}
myObject.act = action
但有没有更快的方法来做到这一点,比如const lambda(或其他东西)?
很像:
say hello
我希望无法重新分配或覆盖属性// This is psuedocode.
myObject.myConstAction = const lambda (){
console.log("I won't change.")
}
。
答案 0 :(得分:4)
你误解了你所拥有的代码。
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();

答案 1 :(得分:2)
" const函数"实际上没有任何东西。 (或const 任何),它是对象的属性。最快的方法仍然是
myObject.act = () => console.log('say hello');
了解const
标识符实际上没有做任何事情:
const myObject = {}
const action = () => {
console.log("say hello")
}
myObject.act = action;
myObject.act = () => console.log('goodbye');
myObject.act();