Viki

Viki 写东西的地方

努力上进且优秀
x
github
email
bilibili

JavaScriptの関数パラメータは実際に相互にアクセスできるのですか?

はい、やめてください、私は非常に下手です、私は大げさに驚いています 😩。

const buildFn = (
  name = "Viki",
  sayHi = () => {
    console.log(name);
  }
) => {
  return sayHi;
};

buildFn()(); // 問題ありません、予想通りにVikiを出力します
buildFn("hi")(); // 問題ありません、予想通りにhiを出力します
const buildFn2 = (
  obj = { name: "Viki" },
  sayHi = () => {
    console.log(obj.name);
    obj = { name: "VIKI" };
  },
  sayHi2 = () => {
    console.log(obj.name);
  }
) => {
  return { sayHi, sayHi2 };
};

buildFn2().sayHi(); // 問題ありません、予想通りにVikiを出力します
buildFn2({ name: "hi" }).sayHi2(); // 問題ありません、予想通りにhiを出力します
const buildFn3 = (
  sayHi = () => {
    console.log(name);
  },
  name = "Viki"
) => {
  return sayHi;
};

buildFn3()(); // 問題ありません、nameがsayHiの後にある場合、Vikiも出力されます
buildFn3(() => console.log(name), "hi")(); // 注意:渡されたsayHi関数ではnameにアクセスできません
const buildFn4 = (
  sayHi = () => {
    console.log(obj.name);
    obj = { name: "VIKI" }; // これはsayHi2のobjに影響を与えません
  },
  sayHi2 = () => {
    console.log(obj.name);
  },
  obj = { name: "Viki" }
) => {
  return { sayHi, sayHi2 };
};

buildFn4().sayHi(); // 問題ありません、予想通りにVikiを出力します
buildFn4().sayHi2(); // 注意:まだVikiです、sayHiに影響を受けません

相互にアクセスできるだけでなく、パラメータの順序にも影響されません 🙃、コンソールで試してみてください。

メモして、自分の印象を深めます。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。