Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Node conf ar 2018.
Search
Willian Martins
October 19, 2018
Technology
650
0
Share
Node conf ar 2018.
Willian Martins
October 19, 2018
More Decks by Willian Martins
See All by Willian Martins
Empirical Observations on the The Future of Scalable UI Architecture
wmsbill
0
160
Além do else! Categorizando Pokemóns com Pattern Matching no JavaScript
wmsbill
0
880
De volta ao Futuro do JS: As próximas features e propostas incríveis
wmsbill
0
110
Back to the future of JS II: Beyond what we can foresee
wmsbill
0
130
A, B, C. 1, 2, 3. Iterables you and me.
wmsbill
0
100
Back to the future of JS II: Beyond what we can foresee
wmsbill
0
140
Back to the future of JS.
wmsbill
0
11
Back to the future of JS
wmsbill
1
86
Back to the future of JS
wmsbill
2
290
Other Decks in Technology
See All in Technology
ある製造業の会社全体のAI化に1エンジニアが挑んだ話
kitami
2
470
ADOTで始めるサーバレスアーキテクチャのオブザーバビリティ
alchemy1115
2
260
20260410 - CNTUG meetup #72 - DiskImage Builder 介紹:以 Kubespray CI 打造 RockyLinux 10 Cloud Image 為例
tico88612
0
110
ふりかえりを 「あそび」にしたら、 学習が勝手に進んだ / Playful Retros Drive Learning
katoaz
0
410
暗黙知について一歩踏み込んで考える - 暗黙知の4タイプと暗黙考・暗黙動へ
masayamoriofficial
0
520
ZOZOTOWNリプレイスでのSkills導入までの流れとこれから
zozotech
PRO
4
3.1k
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
17k
自己組織化を試される緑茶ハイを求めて、今日も全力であそんで学ぼう / Self-Organization and Shochu Green Tea
naitosatoshi
0
290
制約を設計する - 非決定性との境界線 / Designing constraints
soudai
PRO
6
2.3k
建設的な現実逃避のしかた / How to practice constructive escapism
pauli
4
290
機能・非機能の学びを一つに!Agent Skillsで月間レポート作成始めてみた / Unifying Bug & Infra Insights — Building Monthly Quality Reports with Agent Skills
bun913
5
3.8k
第26回FA設備技術勉強会 - Claude/Claude_codeでデータ分析 -
happysamurai294
0
390
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
94
The Curious Case for Waylosing
cassininazir
0
290
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
160
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
170
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
390
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
How to make the Groovebox
asonas
2
2.1k
Docker and Python
trallard
47
3.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
27
3.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
800
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
160
The agentic SEO stack - context over prompts
schlessera
0
730
Transcript
¡Hola!
https://github.com/tc39/proposals
v. NodeConf Ar
@wmsbill What is this?
@wmsbill this in the global scope Browser - window Web
worker - self NodeJS - module.exports
@wmsbill this inside a function?
@wmsbill this inside a function?
@wmsbill What is this?
@wmsbill What is this?
@wmsbill this inside a function Browser - window NodeJS -
global object
@wmsbill this with new operator
@wmsbill this with new operator
@wmsbill this with strict mode
@wmsbill this with strict mode
@wmsbill Setting this value Function.prototype.call Function.prototype.apply Function.prototype.bind new operator Object
member function
@wmsbill Setting this value
@wmsbill How to make this predictable? Reasoning the value of
this is tricky Function.prototype.bind Arrow function () => {}
None
With .bind()
With Arrow
@wmsbill Calling a knowing function
@wmsbill Extracting a method from an object
None
@wmsbill Two syntaxes Unary : :context.method() Binary context: :method()
@wmsbill Unary syntax
@wmsbill Binary syntax
@wmsbill
@wmsbill
@wmsbill
@wmsbill Bind operator is good for virtual methods But relies
on this to be bound
@wmsbill Composing without this
@wmsbill
@wmsbill
None
@wmsbill Pipeline operator |> It is a syntax sugar for
function composition It creates a way to streamline a chain of functions
@wmsbill Pipeline operator |>
@wmsbill
@wmsbill
@wmsbill
@wmsbill Function with more params
@wmsbill Function with more params
@wmsbill Awaiting a function
@wmsbill Awaiting a function
@wmsbill Awaiting a function
@wmsbill Awaiting a function
@wmsbill Awaiting a function
None
@wmsbill Smart pipeline
@wmsbill Smart pipeline Two types bare style and topic style
() or [] are disallowed in bare style When () or [] is needed, topic style is used # token is subject to change
@wmsbill What about curry?
None
@wmsbill F# pipeline proposal Extends the minimal proposal with an
await step Await step waits for the resolution of the previous step
@wmsbill F# pipeline proposal
@wmsbill
@wmsbill Partial application f(…) arity = n; partialapp(f(…)) arity =
m; m < n
@wmsbill
@wmsbill
@wmsbill Partial application in ES Achievable by Function.prototype.bind .bind() binds
context and parameters
@wmsbill
@wmsbill What about currying? We can achieve partial application with
curry Curry ≠ Partial application Curry returns arity n-1
@wmsbill
@wmsbill Partial application with arrow function
None
@wmsbill Partial application proposal Creates two new parameters tokens ?
For single argument . . . for multiple parameters (not in the initial spec anymore)
@wmsbill Partial application syntax
@wmsbill With arbitrary parameter
None
@wmsbill Partial application in template string
@wmsbill Partial application in template string
None
@wmsbill The . . . token Spread the unbound parameters
Useful when you want to bound first or last parameter
@wmsbill The . . . token
@wmsbill The . . . token
@wmsbill Partial application + pipeline
@wmsbill Partial application + pipeline
@wmsbill Should I use all of it in production? These
proposal are in very early stage The adoption of one, may change the syntax/semantics of other Not production ready (yet)
https://medium.com/@wmsbill https://twitter.com/wmsbill
[email protected]
https://www.smashingmagazine.com/2018/10/taming-this-javascript-bind- operator/
¡Gracias!