Javascript: call, apply, bind
4667 ワード
🙋🏻♀️ call、applyとbindの違いは?
まず,共通点は,3人ともthisに渡したい変数を最初のパラメータとして得ることである.
callとapplyの違いは、callが2番目のパラメータからパラメータをリストし、applyが2番目のパラメータを配列形式で受信することである.
「call,apply」と「bind」の違いは、関数が呼び出されたときに呼び出され、applyが関数を実行し、bindが実行されないことです.bindは、バインドされた関数自体を返すと理解される.
// 유사배열 i.e. nodeList
const rainbow = { 0: 'red', 1: 'orange', 2: 'yellow', 3: 'green', 4: 'blue' }
// 배열에 강제 접목하여 배열처럼 다룬다
Array.prototype.slice.call(rainbow, 0, 1) // 'red'
Array.prototype.slice.call(rainbow, [0, 1]) // 'red'
// setTimeout 등에 유용한 bind
let current = { sec: 10 }
function tictoc(){
this.sec++;
console.log(this.sec);
}
// call, bind 의 문법차이 확인
setTimeout(() => { tictoc.call(current), 1000 })
setTimeout(tictoc.bind(current), 1000)
Reference
この問題について(Javascript: call, apply, bind), 我々は、より多くの情報をここで見つけました https://velog.io/@minjae-mj/Javascript-call-apply-bindテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol