请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

函数调用的问题

今天面试有道题让解释不会老师帮我看看吧

const o1 = {
      text: 'o1',
      fn: function() {
          return this.text
      }
  }
  const o2 = {
      text: 'o2',
      fn: function() {
          return o1.fn()
      }
  }
  const o3 = {
      text: 'o3',
      fn: function() {
          var fn = o1.fn
          return fn()
      }
  }
  console.log(o1.fn())//o1这个明白在对象方法中调用this指向对象本身
  console.log(o2.fn())//这里不懂
  console.log(o3.fn())//这里也不懂


正在回答 回答被采纳积分+3

1回答

双越 2020-09-09 21:25:40

建议你先继续往下看,一直看到 6-3 节,然后再来回顾这个问题。


再看我的回复:

o2.fn() 咋不明白呢?执行结果就是 o1.fn() ,即 'o1' 呀?这个哪里不明白,我都不知道咋解释了,感觉很好理解呀。

o3.fn() 内部有 fn() ,直接执行 fn() ,则 fn 内部的 this 是 window ,这一点课程里说过。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕函数9246930 #1
    我视频看完了..但是觉得学的不够扎实,稍微绕点的一做题就懵,准备去找些各种考察输出的题做,老师有推荐的网址吗?  
    const o3 = {
          text: 'o3',
          fn: function() {
              var fn = o1.fn
              return fn()
          }
      }
    这里就是o3的fn方法里是申明了一个fn,这个fn函数是o1中的fn赋给他的,然后fn()运行,因为fn的this是window,window中又没有申明text,所以这里return出来的是undefined,对吗?
    回复 有任何疑惑可以回复我~ 2020-09-09 22:48:15
  • 双越 回复 提问者 慕函数9246930 #2
    是的。
    回复 有任何疑惑可以回复我~ 2020-09-10 08:04:36
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号