はじめに
Property
Parameter
Argument
の違いが曖昧だったのですが、いったん理解できたと思うので共有します。
Property
const obj = {a:1, b:2, c:3}
このときの a
b
c
を Property
と言います。
Parameter
function f (a, b, c) {
console.log(a + b + c)
}
このときの a
b
c
を Parameter
と言います。
Argument
function f (a, b, c) {
console.log(a + b + c)
}
f(1, 2, 3)
このときの 1
2
3
を Argument
と言います。
MDNからの引用
「仮引数 (parameter)」と「実引数 (argument)」の違いに注意してください。
関数の仮引数は、関数の定義に掲載されている名前です。
関数の実引数は、関数に渡される実際の値です。
仮引数は、実引数が提供した値で初期化されます。
なお、MDN はJSに関する膨大な情報を持つ信頼性の高いサイトですが、
完全な一次情報ではないと思っています。
ECMA公式ドキュメントで該当の記述をご存知の方、教えていただけますと幸いです。
また、Property
については MDN 英語原文のページを参照することをおすすめします。
日本語訳ページでは情報が圧倒的に少ない上、一部誤った情報が掲載されています。
豆知識:予約語
Property
Parameter
Argument
のうち、Property
には予約語を使用することができます。
(かつてはブラウザによっては禁止だったらしい)
予約語についてはこちら
const object = {const: 3, let: 2, var: 1}
みたいなこともできるわけですね。可読性が終わるのでやらない方がいいですが。
example.const.do.break.default
みたいなこともできるわけです(やめろ)
一方、Parameter
には予約語を使用できません。
function f(const) {
// SyntaxError
}