関数メソッドの機能メソッド
8423 ワード
関数を実行する様々な方法
.call .使用方法
function add(x, y) {
this.val = x + y;
console.log(this.val);
}
let obj = { val: 0 };
add.call(obj, 2, 8);
function add(x, y) {
this.val = x + y;
console.log(this.val);
}
let obj = { val: 0 };
add.apply(obj, [2, 8]);
2つの違いがわかりますか.
を選択します.callでは、パラメータの追加を続行する記事は1つだけです.applyはパラメータを配列に追加する必要があります.
.bindブート
call/applyとは異なり、すぐに関数を実行するのではなく、値をバインドした関数を返します.
function add(x, y) {
this.val = x + y;
console.log(this.val);
}
let obj = { val: 0 };
let boundFn = add.bind(obj, 2, 8) //boundFn은 함수
boundFn() // add.bind는 여기서 실행된다
パラメータ順序はcallのように追加できます.
boundFn()は通常の関数(メソッド)呼び出しのように見えますが、ここでは値がバインドされています.
apply case
let arr = [7, 35, 2, 8, 21];
この配列の最小値Mathを指定します.minを利用して手に入れたい場合はどうすればいいですか?let minimum = Math.min.apply(null, arr);
console.log(minimum);
この値は意味がないのでnullに変換できます.call、applyでプロトタイプ機能を借りる
function moreThanFive(str) {
return str.length > 5;
}
let arr = ['code', 'states']
上記のコードがあると言います.filterメソッドを使用したい場合は、どうすればいいですか?
arrでfilterメソッドを使用すればよい.
では、プロトタイプ機能を借りるなら?
コールの機能を使用する場合は、上記の操作を行います.
Apply機能を使用するには、配列として後続のパラメータを入力する必要があります.
Reference
この問題について(関数メソッドの機能メソッド), 我々は、より多くの情報をここで見つけました https://velog.io/@lunaticholic/함수-메소드-Function-Methodテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol