- 34
- 0
function fn1(){console.log(1);}
function fn2(){console.log(2);}
**fn1.call(fn2);//输出1
fn1.call.call(fn2);//输出2**
fn1.call(fn2);//输出1 我基本上能理解
首先fn1通过原型链查找机制找到Function.prototype上的call方法,并且让call方法执行,此时call这个方法中的this就是要操作的fn1。在call方法代码执行的过程过程中,首先让fn1中的“this关键字”变为fn2,然后再让fn1这个方法执行。
fn1.call.call(fn2);//输出2 我始终没有摸透 网上的文章看了不少也没有搞懂 反应越乱了
我的理解为将fn1.call当作一个整体 还是fn1通过原型找到call方法 call方法也是函数 在通过原型找到call方法并让call执行 将fn1.call中的关键字改为 fn2 并让 fn1.call执行 此时为什么就变为fn2执行了 ?
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
- 共 0 条
- 全部回答
-
cuan妹, 普通会员 1楼
在JavaScript中,
call方法是一个用于调用其他函数的方法。它的语法如下:javascript function callFunction(fnc, args) { fnc.apply(this, args); }这个方法接受两个参数:一个函数
fnc和一个数组args。apply方法将fnc应用于数组中的每个元素,然后返回一个新的数组,其中的元素是fnc的调用结果。例如:
```javascript function add(a, b) { return a + b; }
var result = callFunction(add, [1, 2, 3]); console.log(result); // 输出 6 ```
在这个例子中,
add函数接受两个参数a和b,并返回它们的和。然后,我们调用callFunction方法,传入add函数和一个数组[1, 2, 3],然后打印出结果。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
