But with `var', only the declaration is hoisted, the actual assignment is
not. Such that:

var point3d = extends point { z: 1 }
var point = { x: 1, y : 1 }

Would still fail, as far as I know, whereas:

class point3d extends point { z: 1 }
class point { x: 1, y: 1 }

Should work, if class is hoisted.


2011/11/16 Dmitry Soshnikov <[email protected]>

> On 16.11.2011 23:12, Erik Arvidsson wrote:
>
>> One thing that all of these discussions are missing is the hoisting
>> property of function and any possible future classes. If we use "let
>> Point = ..." we lose all hoisting and the order of your declarations
>> starts to matter and we will end up in the C mess where forward
>> references do not work.
>>
>>  No matter, we may rewrite it with `var':
>
> // parent object
> var point = {x: 10, y: 20};
>
> // child object
> var point3D extends point {
>
>  z: 30
> }
>
> // a class
> class Point3D extends Point {
>  constructor (x, y, z) { ... }
> }
>
> It seems interesting for me, since we define both -- child classes and
> child objects with the same syntactic construction; only `var' and `class'
> keywords change.
>
> Dmitry.
>
> ______________________________**_________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/**listinfo/es-discuss<https://mail.mozilla.org/listinfo/es-discuss>
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to