Sep 27 meeting notes
Erik Arvidsson
erik.arvidsson at gmail.com
Fri Sep 30 10:57:08 PDT 2011
On Fri, Sep 30, 2011 at 10:12, Bob Nystrom <rnystrom at google.com> wrote:
> // Constant on class.
> const ZERO = new Point(0, 0);
I don't like this. It is too magic and I don't expect people to
remember to use class.ZERO or MyClass.ZERO over this.ZERO.
> // Function on class.
> class add(a, b) {
> return a.add(b);
> }
> // Nested class (data property on class whose value is a class).
> class Foo {
> ...
> }
These two look too similar for my liking. I know people don't like
'static' but it is a lot clearer what the intent is.
In general I don't like having some things go on the prototype and
some on the function/class. I see refactoring hazards (changes from
const to var/let will break)
One of the things I like about the object literal syntax is that it
doesn't seem like things might be in scope. Take this example (with
intentional error):
class Point {
var x = 0;
var y = 0;
distance(other) {
return Math.sqrt(x * other.x + y * other.y);
}
}
it is very tempting to think that var x and var y are in scope. If an
object literal is used at least we have the current behavior to steer
people into doing the right thing.
--
erik
More information about the es-discuss
mailing list