d at domenic.me (2015-02-22T03:26:44.235Z)
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:
```js
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)
```js
var Klass = Backbone.Model.extend();
Klass.prototype.whatever = whatever;
export default Klass;
```
B)
```js
var Klass = Backbone.Model.extend();
Klass.prototype.whatever = whatever;
export { Klass as default };
```
C)
```js
var Klass = Backbone.Model.extend();
export default Klass;
Klass.prototype.whatever = whatever;
```
D)
```js
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?
```js
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?
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?