JavaScriptを適用してcall関数を理解する
こんにちは:)この文章はapplyとcall関数を紹介します!
任意の関数を任意の場所に適用して、一緒に使用できる関数です.パラメータ適用をスキップしたり、直接使用したりすることができます.
言語だけでは理解しにくいので、コードで例を示します.
しかし、personオブジェクトとactionオブジェクトを混ぜて、「勲は今、引体が上」と印刷したいと思っています.
この場合、apply関数またはcall関数を使用して適用できます.
この関数を説明します.
actionのトレーニング関数をpersonオブジェクトに適用します.
このように見ることができます
call関数とapplyの違いはまったく同じです.
まず、この場合、call関数で完全に置き換えることができます.
では、どんな違いがありますか.
異なるパラメータ直接伝送方式.
applyはアレイパラメータを送信できます.
callはパラメータを文字列で渡すことができます.
上記で使用したコードに基づいて、他の例を提供します.
パラメータを余分に転送して、「フンは2時間30分動いている」という文字を出力したいです.
コードを見てみましょう.
functionのパラメータに受信したいパラメータを入力し、apply関数のパラメータ配置領域にパラメータを送信して適用します.
${time}のフォーマットが分からない場合は、私のブログの文章のtemplate literalを参照してください.
https://velog.io/@hoon_dev/JavaScript-Template-Literal
call関数は配列形式ではなく、通常の文字列形式でパラメータを挿入するだけです.
もう1つの方法は、Spread Operatorを使用して、開発のために関数にアレイ形式を挿入することです.
拡張演算子
https://velog.io/@hoon_dev/JavaScript-Spread-Operator-%ED%99%9C%EC%9A%A9-%EB%B0%A9%EB%B2%95
ここを参考にしてください
ありがとうございます.
https://velog.io/@josworks27/%ED%95%A8%EC%88%98%ED%98%B8%EC%B6%9C-call-apply-bind-%EC%B0%A8%EC%9D%B4
apply、call関数とは?
任意の関数を任意の場所に適用して、一緒に使用できる関数です.パラメータ適用をスキップしたり、直接使用したりすることができます.
言語だけでは理解しにくいので、コードで例を示します.
let person = {
name: "훈이",
};
let acting = {
exercise: function () {
console.log(
`${this.name}는(은) 지금 턱걸이중`
);
},
};
nameキーを持つpersonオブジェクトと、トレーニング関数を持つactionオブジェクトがあるとします.しかし、personオブジェクトとactionオブジェクトを混ぜて、「勲は今、引体が上」と印刷したいと思っています.
この場合、apply関数またはcall関数を使用して適用できます.
acting.exercise.apply(person)
//훈이는(은) 지금 턱걸이중
この関数を追加すると、必要な結果値が得られます.この関数を説明します.
actionのトレーニング関数をpersonオブジェクトに適用します.
このように見ることができます
call関数とapplyの違いはまったく同じです.
まず、この場合、call関数で完全に置き換えることができます.
acting.exercise.call(person)
//훈이는(은) 지금 턱걸이중
そのまま使えばいいapply VS call差異
では、どんな違いがありますか.
異なるパラメータ直接伝送方式.
applyはアレイパラメータを送信できます.
callはパラメータを文字列で渡すことができます.
上記で使用したコードに基づいて、他の例を提供します.
パラメータを余分に転送して、「フンは2時間30分動いている」という文字を出力したいです.
コードを見てみましょう.
let person = {
name: "훈이",
};
let acting = {
exercise: function (time, minute) {
console.log(
`${this.name}는(은) 지금 턱걸이 ${time}시간 ${minute}분째 중`
);
},
};
//apply(적용시킬곳,파라미터(배열형태))
acting.exercise.apply(person, [2, 30]);
このように適用すると、必要な結果値が得られます.functionのパラメータに受信したいパラメータを入力し、apply関数のパラメータ配置領域にパラメータを送信して適用します.
${time}のフォーマットが分からない場合は、私のブログの文章のtemplate literalを参照してください.
https://velog.io/@hoon_dev/JavaScript-Template-Literal
call関数は配列形式ではなく、通常の文字列形式でパラメータを挿入するだけです.
let person = {
name: "훈이",
};
let acting = {
exercise: function (time, minute) {
console.log(
`${this.name}는(은) 지금 턱걸이 ${time}시간 ${minute}분째 중`
);
},
};
//call(적용시킬곳,파라미터(문자 형태))
acting.exercise.call(person, 2,30);
パラメータ転送方式のみを考慮すると、結果は同じになります.^^もう1つの方法は、Spread Operatorを使用して、開発のために関数にアレイ形式を挿入することです.
let numbers = [2, 3, 4, 5];
let plus = function (a, b, c, d) {
console.log(a + b + c + d);
};
plus(...numbers);
この展開方法を使用して、すべてのパラメータを簡単に追加できる関数を作成することもできます.拡張演算子
https://velog.io/@hoon_dev/JavaScript-Spread-Operator-%ED%99%9C%EC%9A%A9-%EB%B0%A9%EB%B2%95
ここを参考にしてください
ありがとうございます.
参考資料
https://velog.io/@josworks27/%ED%95%A8%EC%88%98%ED%98%B8%EC%B6%9C-call-apply-bind-%EC%B0%A8%EC%9D%B4
Reference
この問題について(JavaScriptを適用してcall関数を理解する), 我々は、より多くの情報をここで見つけました https://velog.io/@hoon_dev/JavaScript-apply-call-함수-알아보기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol