Are objects values?

Naveen Chawla naveen.chwl at gmail.com
Sat Aug 19 18:44:08 UTC 2017


But references are also values. It's not a mutually exclusive thing

On Sat, 19 Aug 2017, 11:32 p.m. kdex <kdex at kdex.de> wrote:

> 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
> > "...you'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]:
> >
> http://www.ecma-international.org/ecma-262/8.0/index.html#sec-ecmascript-lan
> > guage-types [2]: https://en.wikipedia.org/wiki/Value_(computer_science)
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20170819/c0788140/attachment-0001.html>


More information about the es-discuss mailing list