I have two questions
First :
I recently learnt that in ES 6 derived class, if super() is not called, the "this" is not available. 
I understand why it is done this way, but I want to know conceptually, what piece of ES6 compiled code is making "this" to be unavailable. I mean if i want to do the same in ES5 to make "this" unavailable, how can that be done.

Second:
Why are we not able to instantiate ES6 prototype methods
Below will not work-

```
class abc{
func(){}
}

var a = new abc()
var b = new a.func()

```

whereas this will work-

```
function abc(){}

abc.prototype.func = function(){}

var a = new abc()
var b = new a.func()

```

WHY ? For the above question as well, I want to know more about what implementation is doing this and not why they decided to provide this feature.