引数分割束縛
めっちゃ覚えにくい
以下だと理解している違う
f({param}) とは、fの第一引数に渡されたxxxのうち、param プロパティについては、関数内で xxx. を省略できる
Javascriptの場合、省略はいつでもできます。省略するとundefinedになります
code: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.icon
例
code: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
https://gyazo.com/bac8896ca216a8c40ad55ec2d2e02d17
怒られないっぽい
あれ?なんでだろう
あー、外のobj見に行ってますね(よくやるミスsta.icon
objのスコープかtakker.icon
let objにしないと、スコープをぶち抜いてしまう
単に前のコードが残っているだけかな?
グローバル変数にしちゃうと、関数の後で定義した変数を関数内から参照できてしまうようだ Javascriptのグローバル変数怖すぎだろtakker.icon
そうだったのか……これはハマるsta.icon
自分も今実行して知りました……takker.icon
JavaScript.icon