INDEX
A
addID
mixin
addObserver
function
afterEach
function
- anonymous functions as callbacks
- AOP (aspect-oriented programming)
- advices
- argument checking
- aspects
- caching
- case studies
- contract enforcement, returned objects
- cross-cutting concerns
- libraries
- AopJS jQuery plugin
- AspectJS
- YUI Do class
- Memoization pattern and
- aspect application
- aspect creation
- namespaces
- partial function applications
- reliability
- versus static solutions
- testing and
Aop
object
- AopJS jQuery plugin
apply
function
- architectural divisions
- Call Stack Technique
- Family-Secret Technique
- Imprinting Technique
- Magic Wand Technique
- Mission Impossible Technique
- testing
args
parameter
- arguments
- checking
- versus object literals
- arrays
asJSON( )
method
- AspectJS
assert
method
- asynchronous callbacks
attachReturnValidator
method
B
- BDD (behavior-driven development), Jasmine
beforeEach
function
bind
function
- binding,
this
- default
- explicit
- implicit
new
and
boolean
data type
- Boolean operations
borrow( )
method
- borrowing methods. See method borrowing
C
- caching, AOP and
call
function
- Callback Pattern
- callback arrow
- testing functions
- unit tests
- testing code
- writing code
- writing functions
callbackFcn
- callbacks
- arrows
- asynchronous
- synchronous
- testing
- testing code
this
variable
- writing
- writing code
- chainable methods
- testing
then
this
- unit testing
- chaining,
Promise
- chess analogy for patterns
- classical inheritance
- closures
- code
- correctness
- incorrect
- minimum required
- optimization
- reuse
- code-checking tools
- JSHint
- linting tools
- Strict Mode
- coding by contract
- conformance
- ESLint
- coding standards
- installation
- running
- testing
- constructor functions
- correctness of code
createATestObject
method
- currying
D
- D3 (Data-Driven Documents)
- case study
- SVG line code generation
- data types
boolean
null
number
string
undefined
- Decorator Pattern
- do-nothing decorators
- error pass through
- fakes
- features
- generalization
- pass-through functionality
- pass-through successes
- testing
- Dependency Inversion Principle (SOLID)
describe
function
- design
- development
- small-scale versus large-scale
- TDD (test-driven development)
- DI (dependency injection)
- case study
- frameworks
- AngularJS
- RequireJS
- using
- reliability of code
- system testing
- D.O.H. testing framework
- DOM
- access, testing
- UI tests
- brittle
- code
- event handlers
done( )
function
- DRY principle
- classical inheritance emulation
- functional inheritance
- modules
- monkey patching
new
object creation
- object literals and
- primitives and
- duck typing
E
- ECMAScript, polyfills and
- emulation, classical inheritance
- ESLint
- coding standards enforcement
- installation
- running
- all JavaScript files
- single file
- evaluator function as interface
- event handlers
expect
function
extend
function
F
- factories
- Factory Pattern
- implementing
- testing
- unit testing
- fates,
Promise
for
loops
forEach
loops
- frameworks
- DI (dependency injection)
- AngularJS
- code reliability
- RequireJS
- system testing
- using
- testing
fulfills
method
- functional inheritance
- functions. See also partial function applications
addObserver
afterEach
- anonymous
- arguments
beforeEach
bind
- callbacks (See callbacks)
- anonymous functions
- testing
- writing
- constructor functions
- declarations
describe
done( )
expect
extend
getID( )
getProfile
incrementValue
interpolate
- invoking
iterate
line
line.x
line.y
- methods, attaching
- nested
- as objects
prefetch
- properties, constructor functions
register
- return types
- returning functions
- scope
segment
setID( )
toThrow( )
validateWithContractNameString
valIncrementor
G
getID( )
function
getProfile
function
H
- HTTP GET
- HTTP POST
- HTTP requests,
Promise
and
I
incrementValue
function
- inheritance
- classical
- functional
- object prototype
instance of
operator
- instances
- Interface Segregation Principle (SOLID)
- interfaces
- benefits
- evaluator function as
- Interface Segregation Principle
- as static data
interpolate
function
it
function, Jasmine and
iterate
function
J
- Jasmine testing framework
afterEach
function
- BDD (behavior-driven development)
beforeEach
function
describe
function
expect
function
it
function
- matchers
- running tests
- specifications
- spies
- suites
- test doubles
- UI tests
- JavaScript, features
- jQuery, plugins, AopJS
- JSHint
- JSLint
L
- libraries, contracts
line
function
line.x
function
line.y
function
- linting tools
- Liskov, Barbara
- Liskov Subsitution Principle (SOLID)
- literals
- object literals
- Singleton Pattern and
- loops
- LRU (least recently used) cache
M
- Mediator Pattern
- colleagues
- developing
- interfaces
- testing
- contracts
fakeMediator
- game
- interface segregation
- mediators
- testing
- Memoization Pattern
- AOP and
- testing
- unit tests
- method borrowing
borrow( )
method
- functions qualifying borrower
- objects
- aspect
- suitability
- validator
- side effects
- testing
- methods. See also chainable methods; functions
asJSON( )
assert
- attaching to functions
attachReturnValidator
borrow( )
createATestObject
fulfills
iterate
multipleFulfills
then
- mixins
addID
- creating
- functional
- TDD
- testing
- traditional mixins
- module pattern
- DRY and
- module creation
- immediate execution
- reliable
- at will
- SOLID and
- modules
- AOP
- versus scripts
- Singleton Pattern and
- monkey-patching. See also method borrowing
multipleFulfills
method
N
- namespaces
- nested functions
new
keyword
new
object creation pattern
null
data type
number
data type
O
- objects
- construction, testing
- creating
- as dictionary
- as functions
- literals
- method borrowing and
new
object creation pattern
- primitives
- properties, adding/removing
- prototype
- chains
- default
- inheritance
- wrappers
- Observer Pattern
addObserver
function
- components
recentRegistrationsService
module
- testing
- opeators,
instance of
- Open/Closed Principle (SOLID)
- optimization, profilers and
- inefficiency detection
- premature
P
- parameters
- partial function applications
- AOP (aspect-oriented programming)
- versus currying
- testing
- unit testing
- patterns
- Callback
- case study
- chess analogy
- Decorator
- Factory
- Mediator
- Memoization
- module
- creating modules
- immediate execution
- reliable modules
- object creation
- Observer
- Promise
- Proxy Pattern
- Sandbox
- Singleton
- Strategy Pattern
- TDD and
- AOP
apply
function
- architectural divisions
call
function
- callbacks
- chainable methods
- conformance
- Decorator
- DOM access
- Factory
- Mediator
- Memoization
- method borrowing
- mixins
- object construction
- Observer
- partial function applications
- promise-based code
- Proxy
- Sandbox
- Singleton
- Strategy
- vocabulary and
- plugins, AopJS
- polyfills
prefetch
function
- primitives
- Promise Pattern
- chaining
- creating
done( )
function
- fates
- HTTP requests
- versus jQuery promises
- returning
- states
then
method
- unit testing
- wrappers
- promise-based code, testing
- properties
- adding/removing
- functions, constructor functions
- prototypes
- proxies
- Proxy Pattern
Q-R
- QUnit testing framework
- refactoring
register
function
returnValueCache
S
- Sandbox Pattern
- testing
- unit testing
- function creation
- tools
- widget sandbox
WidgetSandbox
constructor
- scope
- nested functions and
- variables
- scripts versus modules
segment
function
setID( )
function
- side effects of method borrowing
- Single Responsibility Principle (SOLID)
- single-threading
- Singleton Pattern
- shared cache implementation
- modules and
- object literals and
- testing
- unit testing
- small-scale versus large-scale development
- software engineering
- SOLID
- classical inheritance emulation
- Dependency Inversion
- functional inheritance
- Interface Segregation
- Liskov Subsitution
- modules
- monkey patching
new
object creation
- object literals and
- Open/Closed
- primitives and
- Single Responsibility
- specification. See also testing
- squash analogy
- states,
Promise
- Strategy Pattern
- testing
transportScheduler
implementation
- Strict Mode
string
data type
- strings
- SVG line code generation
- synchronous callbacks
- system testing
T
- TDD (test-driven development)
- ad hoc code
- benefits
- development cycle
extend
function
- incorrect code identification
- mixins
- patterns
- AOP
apply
function
- architectural divisions
call
function
- callbacks
- chainable methods
- conformance
- Decorator
- DOM access
- Factory
- Mediator
- Memoization
- method borrowing
- mixins
- object construction
- Observer
- partial function applications
- promise-based code
- Proxy
- Sandbox
- Singleton
- Strategy
- UI components
- unit-testable code, writing
- testing. See also specification; TDD
apply
and
bind
call
and
- callback functions
- designing for
- doubles
- ease of
- framework
- incorrect code identification
- maintenance and
- runnable
- system testing
- unit testing
- chainable methods
- Decorator Pattern
- Factory Pattern
- Memoization Pattern
- partial function applications
Promise
- Proxy Pattern
- Sandbox Pattern
- Singleton Pattern
- Strategy pattern
XMLHTTPRequest
then
method
this
bind
and
- binding
- callbacks
- chainable methods and
toThrow( )
function
- traditional mixins
- type-free semantics
U
- UI (user interface), unit testing
- component creation
- difficult-to-test code
- Jasmine test framework
undefined
data type
- unit testing
- Callback Pattern
- chainable methods
- Decorator Pattern
- do-nothing decorators
- error pass through
- fakes
- features
- generalization
- pass-through functionality
- pass-through successes
- Factory Pattern
- framework, Jasmine
- Memoization Pattern
- partial function applications
Promise
- Proxy Pattern
- Sandbox Pattern
- function creation
- tools
- widget sandbox
- Singleton Pattern
- Strategy Pattern,
transportScheduler
- UI
- component creation
- difficult-to-test code
V
validateWithContractNameString
function
valIncrementor
function
- variables
- declarations
- function scope
this
- vocabulary, patterns and
W
- WETness (Write Everything Twice or We Enjoy Typing)
- wrappers
X-Y-Z
- x-accessor,
line
and
XMLHttpRequest