- 51
- 0
<script> function fn1() { console.log(this); } fn1(); //第一次调用fn1:window class People { excutor(fn1) { function fn2() { console.log(this); } fn1(); // 第二次调用fn1:window console.log(this); // p fn2(); // undefined } } let p = new People(); p.excutor(fn1);</script>根据 “JS中函数的this为其调用者”第一个问题:fn1第一次被调用在window中,所以其输出为window,第二次将其作为参数传入p.excutor()中调用,为什么this还是window?第二个问题:fn2在Person中的excutor中定义,根据ES6语法,class中默认是严格模式,所以在p.excutor()中调用fn2其this是undefined。如果将fn2放在非class环境中调用为什么fn2的this还是undefined?第三个问题:综合以上现象,是否能说明 “JS中函数的this并不是其调用者的this,而是其被定义时所处环境的this”? 比如:fn1在window中定义所以fn1的this一直是window,fn2在class中定义所以fn2的this一直是undefined?
0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

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

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

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

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

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

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

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

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

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

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

