今天看了阮一峰大神的博客文章:JavaScript 的this原理,把纠结很久的this的指向终于理解清楚了

原文:http://www.ruanyifeng.com/blog/2018/06/javascript-this.html

现在来说说如何区分不同情况下的this对象指向,如下所示:

var obj = {
num: 12,
foo: function() { console.log(this.num) }
} var num = 2;
var fun = obj.foo; obj.foo(); //
fun(); //

obj.foo() 即为调用obj对象下的foo属性对应的方法,但是运行环境还是在对象obj中,故此时的this指向obj对象,故输出为12;

对于 var fun = obj.foo,相当于是将obj对象下的foo函数在内存中的地址赋值给了变量fun,而变量fun却是一个全局变量,所以fun() 的运行环境其实是在window对象下,fun()运行起来后其下的函数foo里的this指向window对象,故此时输出为2;

这是我看了大神博客后的理解加总结,如果有什么不对的地方,希望指正。

最新文章

  1. HTML DOM 对象
  2. Grunt基本使用-V1.0
  3. fzu1342
  4. 如果因特网中的所有链路都提供可靠的交付服务,TCP可靠传输服务是多余的吗?
  5. internet connection sharing has been disabled by the network administrator
  6. Configure custom SSL certificate for RDP on Windows Server 2012 in Remote Administration mode
  7. sessionStorage 、localStorage 和 cookie 之间的区别
  8. SSL协议的握手过程
  9. Lua利用cjson读写json
  10. CS(计算机科学)知识体
  11. centos6.5下安装Nginx
  12. es6数组的复制
  13. 力扣(LeetCode)69. x 的平方根
  14. mysql 的REPLAYCE语句
  15. git 的一般使用
  16. GPUImage API 文档之GPUImageFilter类
  17. 14.ThreadLocal
  18. iOS7 Xcode 5如何设置隐藏状态栏
  19. CSS文本对齐text-align详解
  20. python学习(二十二) String(上)

热门文章

  1. shell /dev/null
  2. css篇-页面布局-三栏布局
  3. python面试题之docstring是什么?
  4. sql语句(删除重复数据只保留一条)
  5. 树莓派4B更换国内源
  6. HTML + CSS (上)
  7. this 的指向问题
  8. 【记录】uni-app Chrome跨域解决方案插件 has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is...
  9. JSON对象排序并生成URL参数
  10. webpack起的项目怎么用手机访问?