Metaprogramming Javascript

  • Uploaded by: Dmytro Shteflyuk
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Metaprogramming Javascript as PDF for free.

More details

  • Words: 276
  • Pages: 94
Metaprogramming JavaScript Dan Webb ([email protected])



What? the writing of computer programs that write or manipulate other programs (or themselves) as their data”

With JavaScript?! ★ Small and fiesty but widely misunderstood ★ Relies on few but powerful constructs ★ You can work with functions, arguments,

built-ins types and mechanisms like inheritance at runtime ★ Techniques underpin many JS libraries

JavaScript Exposed: Objects Out Of Control!

Play along!

4 building blocks

(Nearly) everything is a hash

number string boolean undefined

everything else is an Object

This works with any object

Expandos: a special case

Inspecting objects

Inspecting types

Wha?!

First typeof then instanceof

Functions are Objects

'Methods' are just functions that are assigned to a property of an object

arguments

Functions can return other functions

Closure



Back to wikipedia... A closure occurs when a function is defined within another function, and the inner function refers to local variables of the outer function.

Why is that useful?

Functions can be used to make objects

Constructor functions are just functions

The magic is in the new operator

inheritance

The point is: its all just functions, objects and properties

We can hack it all.

So what can you do with this stuff?

Patch holes in bad implementations

Self optimising code

Pretty APIs

Domain Specific Languages

DOMBuilder http://danwebb.net/lowpro

DIY language features

John Resig's method overloading http://ejohn.org/blog/javascript-method-overloading/

Prototype 1.6 Classes http://prototypejs.org/learn/class-inheritance

and a lot more...

Looking back... ★ JavaScript is small but totally flexible ★ A handful of techniques provide everything

you need ★ It's all about objects, properties and

functions ★ Don't worry if its not all sunk in. Have a

play around. Slides will be available.

Coming Soon...

Related Documents

Metaprogramming Javascript
December 2019 58
Javascript
November 2019 51
Javascript
June 2020 24
Javascript
November 2019 43
Javascript
June 2020 24
Javascript
November 2019 57

More Documents from ""