Task: Fluent interfaces
Information
Many of us are used to jQuery and its fluent apis, e.g.
$('#test')
.css('color','#333')
.height(200)
.on('click', function() {
console.log('clicked!')
});
Fluent apis is often referred to as method chaining. and we use it to achieve
code that is as fluently readable as possible and thus quicker to understand.
In the jQuery example above, all functions return this
so we can keep
calling methods that exists on $('#test')
.
Let us create a small helper that simplifies the development of such fluent apis.
Tasks
- Part 0: Introduction to the workshop
- Part 1: A functions context
- Part 1: A functions arguments
- Part 1: Functions and prototypes
- Part 2: Applicative programming
- Part 2: Make new collections with map
- Part 2: Make new collections with filter
- Part 2: Make new collections with reduce
- Part 2: Using helper liberaries
- Part 2: Point-free style
- Part 2: Applicative functions with context
- Part 3: Function factories
- Part 3: Higher order functions
- Part 3: Functions with functions
- Part 3: Fluent interfaces [Active]
- Part 3: Function arity
- Part 4: Partial application
- Part 4: Create functions from functions
- Part 5: Currying
- Part 5: Composition
- Part 5: Pipelines
- Part 5: Case - Parse URL
- Part 6: Shared state
- Part 7: Working with collections
- Part 7: Done
Help
Available globals
_
: Lo-dash.jslog
: log-command that logs to view and console
Testing
describe
: new test suite (mocha)it
: new test (mocha)xit
: pending test (mocha)xdescribe
: pending scenario (mocha)before/after
: run code before or after all tests (mocha)beforeEach/afterEach
: run code before or after each tests (mocha)chai
: chai.js assertion library