Are objects values?

kdex kdex at
Sat Aug 19 18:02:00 UTC 2017

Yes, objects/functions are values, but they are not *primitive* values.

The current draft uses the phrasing "object value" several times.

Section 4.3.3 explains that objects are "members of type Object", and a type 
is, by definition, a set of values. Therefore, objects must be values.

On Saturday, August 19, 2017 7:34:45 PM CEST T.J. Crowder wrote:
> I recently had an exchange which started out with my "correcting" someone
> who said "Functions are values" by saying "Function *references* are
> values. Functions are objects." He/she replied that objects are also
> values, and after much back and forth, cited [this part of the JavaScript
> spec][1]:
> > An ECMAScript *language type* corresponds to values that are directly
> manipulated by an ECMAScript programmer using the ECMAScript language. The
> ECMAScript language types are Undefined, Null, Boolean, String, Symbol,
> Number, and Object. An *ECMAScript language value* is a value that is
> characterized by an ECMAScript language type.
> ...and said "So objects are values."
> Is he/she right? [Wikpedia][2] isn't much help, at least not to me. I asked
> a friend who, unlike me, did get comp sci theory at Uni, and he said
> "'re not wrong, but it's very Humpty Dumpty: When I use a word, it
> means just what I choose it to mean -- neither more nor less."
> I've used the term "value" in explanations of variables, properties, and
> function arguments and in particular when explaining why `b = a` copies an
> object reference, not an object, from `a` to `b`. (Saying the *object
> reference* is the value.) It's been an invaluable aid to helping people
> "get" object references.
> I'd be very sorry to hear that I was misusing a term of art. But I'd rather
> know. :-)
> If I'm misusing "value," what should I use instead for that thing that
> actually gets stored in memory? How to explain the `b = a` thing with
> object references to beginners?
> This is slightly off-topic for the thread, but also not, as I spend a lot
> of time explaining things to JavaScript beginners, and the authors of the
> text being used to tell me I'm wrong are on this list. :-)
> Thanks,
> -- T.J. Crowder
> [1]:
> guage-types [2]:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <>

More information about the es-discuss mailing list