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

caridy caridy at gmail.com
Tue Feb 17 14:38:44 PST 2015


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