incubator-flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Wasilewski <devudes...@gmail.com>
Subject Re: FalconJS has landed
Date Tue, 27 Nov 2012 16:22:27 GMT
I'll try to help Alex :)
But he may correct me if I am wrong.


I believe this little test will show full picture and all 4 common 
styles of JS programming we are talking about here.

Notice there is nothing about inheritance, just plain objects (classes)
Once inheritance is involved things are slowing down with different ratios.

http://jsperf.com/closures-vs-objects-vs-object-literals-vs-prototype/2

Current proposed style of JS output is Object Literal (red bar in that 
test);
Prototype (green bar) in plain object test seems to be 2nd solution  
outperformed by closure (blue bar) these days.

But when inheritance is involved blue bar is getting shorter and 
prototype is catching up.
Prototype pattern has also less footprint, since you adding 1 shared 
behaviour to your object that will be reused wherever possible instead 
creating brand new object.

There is no surprise why Closure style runs very well on web kit based 
browsers since Google promoting this style and making optimisation just 
for it.
FireFox trying to catch up, but Safari seems to do well both.


Here is a little example of inheritance done with prototype pattern

var Class = function(){}; //empty function to avoid invocation during

Function.prototype.extend = function(C){
   Class.prototype = C.prototype;
   this.prototype = new Class();
   this.prototype.constructor = this;
   return this.prototype
};

now you can easily do this:

function EventDispatcher(){}
p = EventDispatcher.prototype;

function DisplayObject(){
     EventDispatcher.call(this); //equivalent of super
}
p = DisplayObject.extend(EventDispatcher);

THis is obviously simplified form of what is really needed but it is 
good enough to cover lots of aspects already.
Don't want to repeat what has been already sent here as examples, but 
simplicity and speed of this solution will outperform anything in 
real-project-use-case-scenario.

Dan

On 11/27/2012 8:06 AM, Erik de Bruin wrote:
> Alex,
>
> You keep referring to a "prototype". I might be missing something.
> Where can I find it/how do I run it?
>
> EdB
>
>
>
> On Mon, Nov 26, 2012 at 10:32 PM, Alex Harui <aharui@adobe.com> wrote:
>


Mime
View raw message