Why is "export default var a = 1;" invalid syntax?

Jesse McCarthy es-discuss-2015-02 at jessemccarthy.net
Wed Feb 18 13:40:22 PST 2015


> Jesse, you can do:
> `export default class Foo extends Backbone {}`

Ok, thanks. The empty block is required? The part after `extends` is just an 
expression that evaluates to a function, right? So I could do this right 
(where Backbone.Model.extend() returns a function)?:

export default class Klass extends Backbone.Model.extend() {}
Klass.prototype.whatever = whatever;

Thanks,
Jesse

----- Original Message ----- 
From: "caridy" <caridy at gmail.com>
To: "Jesse McCarthy" <es-discuss-2015-02 at jessemccarthy.net>
Cc: <es-discuss at mozilla.org>
Sent: Tuesday, February 17, 2015 5:38 PM
Subject: Re: Why is "export default var a = 1;" invalid syntax?


Jesse, you can do:

`export default class Foo extends Backbone {}`

in case you want to reference to the exported class in the body of the 
module, or you can do:

`export default class extends Backbone {}`

/caridy

> On Feb 17, 2015, at 4:47 PM, Jesse McCarthy 
> <es-discuss-2015-02 at jessemccarthy.net> wrote:
>
> Re: 
> https://esdiscuss.org/topic/why-is-export-default-var-a-1-invalid-syntax
>
> I find myself wanting to do this kind of thing with a function returned 
> from a function, e.g. when using Backbone, and it seems silly that I 
> can't:
>
> export default var Klass = Backbone.Model.extend();
> Klass.prototype.whatever = whatever;
> // ...
>
> For that use case will the following be functionally identical? Any 
> gotchas with circular dependencies or anything?
>
> A)
> var Klass = Backbone.Model.extend();
> Klass.prototype.whatever = whatever;
> export default Klass;
>
> B)
> var Klass = Backbone.Model.extend();
> Klass.prototype.whatever = whatever;
> export { Klass as default };
>
> C)
> var Klass = Backbone.Model.extend();
> export default Klass;
> Klass.prototype.whatever = whatever;
>
> D)
> var Klass = Backbone.Model.extend();
> export { Klass as default };
> Klass.prototype.whatever = whatever;
>
> If I was willing to use class syntax could I do this?
>
> export default class Klass extends Backbone.Model.extend();
> Klass.prototype.whatever = whatever;
>
>
> Glen Huang said:
>> I think this is illegal, should be {a: a}
>
> Sorry, I'm probably missing something obvious, but what is this referring 
> to?
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss



More information about the es-discuss mailing list