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

时间:2018-03-31 08:03:21

标签: javascript const javascript-objects

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

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.") }

2 个答案:

答案 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();