this指向是js开发中必须掌握的知识,今天我们就用一道题目来看看你的基础。

各位认为会输出什么呢?请大家先思考不要直接去运行看答案。

实际上会输出:5和2。

首先我们找到method,里面的两段代码实际都是执行了fn函数,只是this对象不同。

(1):第一行fn(),这个毫无疑问,this指向的是window,所以length自然输出5,大家不要看到fn()在obj对象里面调用,就把this认为指向了obj,这是非常错误的;

this指向谁,是在于函数执行时的环境对象,fn()在执行时,他的环境对象依然是window,这里的fn()大家可以理解为window.fn(),是这样进行执行的。

(2):第二行arguments[0]();大家都知道这个对象是获取函数参数列表的,我们调用method一共传入了两个参数,第一个为fn函数,第二个则是10这个数字,arguments[0]则取了fn这个函数变量指针,然后在后面加上()执行了这个函数。

重点是,在arguments中有一个length属性,是记录一共传入几个参数。

所以,这里大家可以理解为:arguments[0]()=arguments.fn();

this对象就是指向了arguments,length也自然是2了。

大家明白了吗,这道题对于this指向还是比较经典的题目,如果这道题可以独立做出来,证明this指向这块,你基本上是过关的。

this指向_js中关于this指向的训练题相关推荐

  1. java用this指向_java中的this指向?

    米琪卡哇伊 this 是一个关键字,在默认情况下,this指向的是这个关键字所处的方法所属的类的实例,同时这个实例即是你调用this时所处的实例:但是在内部类中你也可以显式得修改this的指向,比如: ...

  2. 手机操作计算机考试题,中招计算机信息技术考试训练题库,MS Word操作题一

    Word操作题(一): 进入本题工作目录,请完成以下操作. 1.将标题文字"方圆处世技巧"格式设置为隶书.深蓝色.居中.下划线. 2.将正文文字设置为楷体.四号.行距为1. 5倍行 ...

  3. JavaScript中的 this指向问题

    以下文章均已附上原文链接 ,侵删 文章一:vue中的this指向问题 vue中的this指向问题_JingG459的博客-CSDN博客_vue中this指向问题 最近写项目遇到很多this指向的问题, ...

  4. 彻底理解js中this的指向

    首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然 ...

  5. 随笔——js中的this指向,apply()与 call()

    js中apply和Math.max()函数(原文) apply() Function.apply() 是JS的一个OOP特性,一般用来模拟继承和扩展this的用途,对于上面这段代码,可以这样去理解: ...

  6. JS 中 this 的指向

    为什么要使用this? 解决的问题? 可以先通过一个例子了解下 function speak(){var name = this.nameconsole.log("Hello I am -- ...

  7. 理解js中的this指向以及call,apply,bind方法

    <script> function a(){var user = "追梦子";console.log(this.user); //undefinedconsole.lo ...

  8. 理解js中this的指向

    彻底理解js中this的指向 JavaScript 的 this 指向问题深度解析 转载于:https://www.cnblogs.com/jeacy/p/6509616.html

  9. $.ligerdialog.open中确定按钮加事件_彻底搞懂JavaScript中的this指向问题

    JavaScript中的this是让很多开发者头疼的地方,而this关键字又是一个非常重要的语法点.毫不夸张地说,不理解它的含义,大部分开发任务都无法完成. 想要理解this,你可以先记住以下两点: ...

最新文章

  1. 形态学处理:膨胀、腐蚀、开运算、闭运算、形态学梯度、顶帽、黑帽
  2. 普通平键的主要尺寸有_?办公桌分类及尺寸介绍
  3. 计算机基础综合实验项目报告模板,计算机基础实验报告模板.doc
  4. 最后 24 小时,赶紧来领取这 50 本送书福利吧!
  5. drf3 Serializers 序列化组件
  6. 【恋上数据结构】回溯、剪枝(八皇后、n皇后)、LeetCode51.N皇后、LeetCode52.N皇后 II
  7. python pandas csv getitem,访问.csv文件时使用Pandas获取KeyError
  8. ios mdm更新应用_ios设备mdm的实现过程
  9. 密码编码学与网络安全讲的是什么
  10. 根升余弦滤波器——MATLAB
  11. 如何做好Windows2003服务器安全策略
  12. python 爬取种子_Python爬虫框架Scrapy 学习笔记 2 ----- 爬取Mininova网站种子文件信息...
  13. Linux云计算-02_CentOS Linux 7.X系统管理
  14. NOIP模拟系列 [BZOJ4668]冷战
  15. Numpy简易教程7——读/写文件
  16. 简单易懂的理解java开发中的 DO、BO、DTO、VO、AO都是什么✌
  17. Graphql入门_0
  18. 视频教程-x86/x64软件逆向分析入门-C/C++
  19. 开区网站打开自动播放音乐的添加跟修改教程
  20. 同色三角形 (数学题)

热门文章

  1. 使用Hystrix实现自动降级与依赖隔离-微服务
  2. Win8 Metro App里玩XNA:ContentPipeline内容管线问题
  3. RedHat Enterprise Linux 5下安装firefox
  4. hibernate查询部分字段加struts2显示
  5. 社区实施 GPL 的原则介绍
  6. Python+OpenCV 设计GUI图像处理
  7. Grafana 系统可视化监控
  8. 在java中转义符 n代表什么_在Java中,表示换行符的转义字符是()。 A.\nB.\fC.n D.\ddd...
  9. 如何用递归处理一个数组中的数据成为一个树结构_Spark处理的一些业务场景(持续更新ing)...
  10. 关于字节跳动小程序授权问题解决方案