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

Jesse McCarthy es-discuss-2015-02 at jessemccarthy.net
Tue Feb 17 13:47:25 PST 2015


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?



More information about the es-discuss mailing list