generated at
引数分割束縛
めっちゃ覚えにくい
以下だと理解している違う
f({param}) とは、fの第一引数に渡されたxxxのうち、param プロパティについては、関数内で xxx. を省略できる
Javascriptの場合、省略はいつでもできます。省略すると undefined になります
js
function test({param}) { console.log('This is the test function.'); console.log(`param is ${param}.`); } test({param: 'baz'}); // → This is the test function. // → param is baz. test({foo: 'baz'}); // → This is the test function. // → param is undefined.
正しくは
f({param}) とは、 f の第一引数に渡された xxx のうち、 param だけを取り出している
つまり xxx.param だけ使いたい場合に、
普通だと f(xxx){……xxx.param……} こうなる
f() 内部でいちいち xxx.param と書く必要があってだるい
引数分割束縛使うと f({param}){……param……} こうなる
f() 内部でいちいち xxx.param と書かなくても良い。 param だけでいい
初めて知ったyosider
/shokai/async-singletonのコードを見たときに初めて知ったtakker
名前付き引数代わりに便利なので多用している

js
function test({key2}){ // 引数として渡されたobjを分解し、そのうちのkey2だけを取り出している console.log(obj.key1) // objがないので怒られる console.log(key2) // 引数分割束縛してるので obj. が要らない console.log(obj.key3) } let obj = { key1: '1', key2: '22', key3: '333', } test(obj) // 1 // 22 // 333

怒られないっぽい
あれ?なんでだろう
あー、外のobj見に行ってますね(よくやるミスsta
obj のスコープかtakker
let obj にしないと、スコープをぶち抜いてしまう
単に前のコードが残っているだけかな?
グローバル変数にしちゃうと、関数の後で定義した変数を関数内から参照できてしまうようだ
Javascriptのグローバル変数怖すぎだろtakker
そうだったのか……これはハマるsta
自分も今実行して知りました……takker

JavaScript