Hacker News new | ask | show | jobs
by stephenr 1995 days ago
I mean... let’s keep in mind we’re talking about a language and community that uses the keyword “const” to define mutable objects. Logic went out the window a long fucking time ago.
1 comments

> we’re talking about a language and community that uses the keyword “const” to define mutable objects.

Nope they use const to define immutable references, the same way that val/var define mutable references.

If you don't understand the difference between mutability of a reference and mutability of the value it refers to, JavaScript is far from the only language you’ll have a problem with.

I understand the difference. The problem is that you can completely change the shape of the object that’s “const”, so it’s hardly fucking constant is it.
> I understand the difference

No, you clearly don't.

> The problem is that you can completely change the shape of the object that’s “const”

“const” is not a feature of objects, but of the reference to a value (which may or may not be an object).

You can't change the reference at all (unlike a var/let references), hence it is constant.

Object immutability is orthogonal to reference immutability and is attained by Object.freeze().

dragonwriter is right.

In C for ex.

  const int* p
means the value pointed at can't change, but

  int* const p
means you can't reaffect p