javascript language paradigms

43
Object-oriented and Functional JavaScript jason harwig

Upload: jason-harwig

Post on 07-Jul-2015

2.160 views

Category:

Technology


0 download

DESCRIPTION

Talk given at The Rich Web Experience 2008. Check out my blog for the code samples.

TRANSCRIPT

Page 1: JavaScript Language Paradigms

Object-oriented and

Functional JavaScript

jason harwig

Page 2: JavaScript Language Paradigms

why so long?

Page 3: JavaScript Language Paradigms

1.

Page 4: JavaScript Language Paradigms

“JavaScript is the world’s

most misunderstood language”

- douglas crockford

Page 5: JavaScript Language Paradigms

2.

Page 6: JavaScript Language Paradigms

no classes

Page 7: JavaScript Language Paradigms

public class Presentation {

public static void main(String[] a) { }

}

7

Page 8: JavaScript Language Paradigms
Page 9: JavaScript Language Paradigms

3.

Page 10: JavaScript Language Paradigms

“No JavaScript”

- pointy-haired boss

Page 11: JavaScript Language Paradigms

why now?

Page 12: JavaScript Language Paradigms
Page 13: JavaScript Language Paradigms

classical inheritance through

libraries

Page 14: JavaScript Language Paradigms

“I want it to be web 2.0”

- pointy-haired boss

Page 15: JavaScript Language Paradigms
Page 16: JavaScript Language Paradigms

what do I need to know?

Page 17: JavaScript Language Paradigms

1.

Page 18: JavaScript Language Paradigms

JSON

Page 19: JavaScript Language Paradigms

var presentation = {

};

19

name: ‘oojs’,

Page 20: JavaScript Language Paradigms

var presentations = [

];

20

Page 21: JavaScript Language Paradigms

var presentation = {

};

21

name: ‘oojs’

Page 22: JavaScript Language Paradigms

abstractasbooleanbreakbytecasecatchcharclasscontinueconstdebuggerdefaultdeletedodouble

elseenumexportextendsfalsefinalfinallyfloatforfunctiongotoifimplementsimportininstanceof

intinterfaceislongnamespacenativenewnullpackageprivateprotectedpublicreturnshortstaticsuper

switchsynchronizedthisthrowthrowstransienttruetrytypeofusevarvoidvolatilewhilewith

22

Page 23: JavaScript Language Paradigms

2.

Page 24: JavaScript Language Paradigms

“prototype is like a rosetta

stone”

- brian dillardjquery vs. prototype

Page 25: JavaScript Language Paradigms

3.

Page 26: JavaScript Language Paradigms

functions

Page 27: JavaScript Language Paradigms

functions as variables

Page 28: JavaScript Language Paradigms

functions without names

Page 29: JavaScript Language Paradigms

functions as constructors

Page 30: JavaScript Language Paradigms

functions vs methods

Page 31: JavaScript Language Paradigms

namespacing

Page 32: JavaScript Language Paradigms

objects

Page 33: JavaScript Language Paradigms

scopes

Page 34: JavaScript Language Paradigms

encapsulation

Page 35: JavaScript Language Paradigms

inheritance

Page 36: JavaScript Language Paradigms

no dot equals?!?

Page 37: JavaScript Language Paradigms
Page 38: JavaScript Language Paradigms

libraries

Page 39: JavaScript Language Paradigms

prototype.js

Page 40: JavaScript Language Paradigms

Presentation = Class.create({

initialize: function() { }

})

40

Page 41: JavaScript Language Paradigms

JQuery Classy Query

Page 42: JavaScript Language Paradigms

JavaScript 2.0

Page 43: JavaScript Language Paradigms

twitter: jharwig

[email protected]

nearinfinity.com/blogs

[email protected]

43