From 93383e8f7779efe1ed99a5f9deb92dc2aaca34a9 Mon Sep 17 00:00:00 2001 From: NONI <1063030602@qq.com> Date: Mon, 13 Nov 2023 23:34:36 +0800 Subject: [PATCH] fix --- .../\346\211\213\345\206\231call.md" | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git "a/docs/\351\235\242\350\257\225/NONI/JS/JS\345\237\272\347\241\200/\346\211\213\345\206\231call.md" "b/docs/\351\235\242\350\257\225/NONI/JS/JS\345\237\272\347\241\200/\346\211\213\345\206\231call.md" index dd7a74a..fbac449 100644 --- "a/docs/\351\235\242\350\257\225/NONI/JS/JS\345\237\272\347\241\200/\346\211\213\345\206\231call.md" +++ "b/docs/\351\235\242\350\257\225/NONI/JS/JS\345\237\272\347\241\200/\346\211\213\345\206\231call.md" @@ -1,6 +1,6 @@ ### **call()** -调用call的函数挂载到传入的第一个参数上,再通过该参数对象来调用‘调用call的函数’,并且能够得到传入其他参数后执行得到的结果 +call()能够改变this指向,执行当前的函数。调用call的函数挂载到传入的第一个参数上,再通过该参数对象来调用‘调用call的函数’,并且能够得到传入其他参数后执行得到的结果。 例如:Fn.call(context, a,b),函数Fn挂载到context对象上,通过context对象调用函数Fn,并且能够得到传入参数a,b后执行得到的结果 @@ -27,10 +27,12 @@ Function.prototype.myCall = function (context) { // 生成唯一的属性名,避免与已有属性冲突 let key = Date.now().toString(36); + //为context创建一个临时属性,指向调用它的函数 context[key] = this; // 获取参数并执行函数 let args = Array.from(arguments).slice(1); + //模拟在指定上下文中调用函数,并获取函数执行的结果。 let result = context[key](...args); // 删除临时属性