presenter deck icenium hol

19
facebook.com/ telerik @telerik Patterns in JavaScript

Upload: dhananjay-kumar

Post on 11-Jun-2015

427 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Presenter deck   icenium hol

facebook.com/telerik

@telerik

Patterns in JavaScript

Page 2: Presenter deck   icenium hol

AgendaStart with Object

Functions

Constructor Pattern

Prototype Pattern

Invocation Patterns

Revealing Prototype Pattern

Revealing Module Pattern

Page 3: Presenter deck   icenium hol

Dhananjay Kumar– Evangelist , Telerik– Microsoft MVP – Mindcracker MVP– @debug_mode – http://debugmode.net– http://telerikhelper.net – [email protected]

m

Your Presenter

Page 4: Presenter deck   icenium hol

JavaScript Objects

Using Literals

Using New Operator

Using Object.creat

e()

Page 5: Presenter deck   icenium hol

Object as Literal Object literal is an expression

It creates new object each time it appears in the code

A single object literal can create many objects in loop

Page 6: Presenter deck   icenium hol

Object using new operator

new operator creates a new object

new operator initialize created object also

new operator invokes a function as give in above code snippet.

Function invoked after new operator is Constructor

Page 7: Presenter deck   icenium hol

Object.create()

It is a static function

It always has two parameters

• Prototype• Properties

Page 8: Presenter deck   icenium hol

JavaScript Functions

Anonymous functions should be assigned to a variable

Page 9: Presenter deck   icenium hol

Nested Functions

Nested function can access variable of parent function

Parent function cannot access variable of nested function

You cannot call nestedfunction from anywhere but the function it is nested within.

Page 10: Presenter deck   icenium hol

Passing Variables in Functions

Page 11: Presenter deck   icenium hol

Invocations Patterns

Function Invocation

Pattern

Method Invocation

Pattern

Constructor Invocation

Pattern

InDirect Invocation

Pattern

Page 12: Presenter deck   icenium hol

Function Invocation Pattern

When you call a function as an expression then it is known as Function Invocation Pattern

First each parameter gets evaluated and then being passed as argument to function

Function return either value or undefined to LHS variable .If called function does not have any return value then it returns undefined

Page 13: Presenter deck   icenium hol

Method Invocation Pattern

Function which is part of an object is known as Method

Invocation of method is known as Method Invocation Pattern

A method can access its parent object with this operator

Binding of method to object happens on execution of method

Page 14: Presenter deck   icenium hol

Indirect Invocation Pattern

Call() method

Apply () method

Direct method

Page 15: Presenter deck   icenium hol

Revealing Prototype Pattern

It is hard to maintain when functionality grows

It is hard to debug

It is hard to test

This is normally we implement it ,

Page 16: Presenter deck   icenium hol

Revealing Prototype Pattern

Code is reusable

Functions can be overridden by prototyping

There are no variables or functions in global namespace

Functions are loaded into

memory only once

Page 17: Presenter deck   icenium hol

Revealing Prototype Pattern : Overriding

Page 18: Presenter deck   icenium hol

Revealing Module Pattern

To Achieve Private/Public

To Achieve Singleton

To remove singleton , remove self-executable code

Page 19: Presenter deck   icenium hol

Questions?