这题目出得有点绕啊

这题目出得有点绕啊

function test()
{
   var num=1;
    this.subTest=function(){ //作为一个全局方法,这里的this在没有new的时候指向的是全局的window对象
       return ++num;
   }
   return subTest; //在这个函数的局部作用域里面其实找不到这个subTest函数,其实是在全局作用域中找到的,上面的this.subTest 写成var subTest不是更好吗
}
console.log(test()());
console.log(test()());

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

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕慕子 2019-06-11 15:20:19

同学你好, 你第一条分析的很对,第二条分析的有些偏差哦, subTest在test函数的局部作用域存在的中的, 所以才可以访问局部变量num, 只是由于js的解析机制,直接调用test函数的时候, this指向了window对象, 所以此时的subTest可以在全局作用域中访问到

另, 这里的this.subTest 可以写成var subTest。 编程是灵活的, 老师这里只是给同学一个示例, 同学考虑的很全面哦

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师