经常会有人问到this的用法,其实简单来说,this有四种应用场景,分别是在构造函数上、对象属性中、普通函数中、call和apply方法中。

首先我们来看第一种:在构造函数中的用法

第二种是在在对象属性中:

第三种:

在代码的执行中我们发现根本取不到“alice”,而是打印出undefined。原因就是当我们这样作为一个普通函数执行的时候,this指向window对象的,而window对象下找不到name这个属性,于是就打印出undefined。如果是找不到一个属性,就会返回undefined;而找不到一个变量,则会返回“xxx is not defined”。

我们再来看最后一种:在call和apply中

其实我们可以把call和apply当成一种特殊的执行方法。可以叫它“能自定义this指向的执行方法”.就是说当我们直接来一个f1()的时候,它的this默认为window

最新文章

  1. 模拟CSS3 多组位移运动属性的框架封装
  2. hdu5468 Puzzled Elena
  3. Spring 4 官方文档学习(十五)CORS支持
  4. Atitti 图像处理 图像混合 图像叠加 blend 原理与实现
  5. Redis笔记(七)Java实现Redis消息队列
  6. C# 判断是否联网
  7. Sql语句,先查询再插入一条语句完成。
  8. 利用Httponly提升web应用程序安全性
  9. SSD在SQLServer中的应用
  10. java.lang.InstantiationException: DWR can't find a spring config. See the logs for solutions
  11. 白盒测试之初识gtest工具
  12. Android(java)学习笔记187:Android中操作XML数据(使用Pull解析器)
  13. 使用 PyQt 转换网页到 PDF(使用QtWebKit加载完毕后,打印整个窗口就行了,真简单!)
  14. C# - 使用 List<> 泛型给GridView控件数据
  15. 团队作业9——展示博客(Beta版本)
  16. Hibernate学习笔记(6)---Criteria接口
  17. 20175317 《Java程序设计》第七周学习总结
  18. .Net 一开始就不应该搞 .Net Core
  19. 学linux,从Ubuntu开始
  20. 使用git将Android源码上传到github

热门文章

  1. 中国人工智能AI框架自主研发
  2. MySQL必知必会复习笔记(1)
  3. 信道均衡之非线性均衡——Tomlinson-Harashima Precoding(THP)
  4. 【NX二次开发】指定矢量控件,记住上次选择的方向
  5. guavacache源码阅读笔记
  6. NOIP模拟测试30「return·one·magic」
  7. Unreal如何进行材质优化?
  8. winform/WPF 多语言的实现
  9. Mysql优化(出自官方文档) - 第六篇
  10. Java安全之挖掘回显链