Javascript functions: Difference between revisions
From wikinotes
No edit summary |
|||
Line 29: | Line 29: | ||
= Lambda Functions = | = Lambda Functions = | ||
<blockquote> | |||
== Basics == | |||
<blockquote> | <blockquote> | ||
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions | https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions | ||
Line 37: | Line 39: | ||
() => console.log('hi') // lambda expression w/o args | () => console.log('hi') // lambda expression w/o args | ||
</source> | </source> | ||
</blockquote><!-- Basics --> | |||
== Currying == | |||
<blockquote> | |||
<syntaxhighlight lang="javascript"> | |||
const sum = a => b => { a + b }; | |||
sum(1)(2); // 3 | |||
const plus_one = foo(1); | |||
plus_one(2); // 3 | |||
</syntaxhighlight> | |||
</blockquote><!-- Currying --> | |||
== Partials == | |||
<blockquote> | |||
</blockquote><!-- Partials --> | |||
</blockquote><!-- Lambda Functions --> | </blockquote><!-- Lambda Functions --> | ||
Revision as of 20:22, 30 August 2021
Functions
function say_hello() { console.log("hello") return true } say_hello()See Also javascript arguments
Return Values
javascript functions cannot return more than one variable.
Anonymous Functions
Functions do not need to be named.
myButton.onclick = function() { alert('hello') }
Lambda Functions
Basics
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
Also referred to as arrow function expressions.
(a, b) => a + b + 100 // lambda expression w/ args () => console.log('hi') // lambda expression w/o argsCurrying
const sum = a => b => { a + b }; sum(1)(2); // 3 const plus_one = foo(1); plus_one(2); // 3Partials
Closures
Javascript supports functions defined inside functions.
function foo() { function bar() { console.log('baz') } bar() }
Binding this
bind()
lets you change the value ofthis
within a method.B = { x: 2 } class A { x = 1 constructor() { this.printb = this.printx.bind(B) } // this.printb uses value of 'x' from 'B' printx() { console.log(this.x); } // this.printx uses value of 'x' from 'A' } const a = new A().printx() a.printx() a.printb()