js中this指向问题一直是个坑,之前一直是懵懵懂懂的,大概知道一点,但一直不知道各种情况下指向有什么区别,今天亲自动手测试了下this的指向。
1.在对象中的this
对象中的this指向我们创建的对象,例如:

var obj ={
ccc : 1122,
ddd : 2233,
ded : function(){
console.log(this);
} ,
fff : function(){
console.log(this === obj );
}
}
obj.ded();
obj.fff();

在chrome中执行的答案如下:

上图我们可以看出我们执行obj对象下的ded函数时,打印出来的事Object对象里面的所有属性,展示这个对象

可以看到obj对象包含的方法和属性都包含在this对象下面,再运行fff函数,把this和obj对象进行比较,可以看出这两个是恒等的,所以在对象里的this指向这个对象。

2.直接调用函数时的this指向
先创建一个函数:

function main(){
this.aad = 234;
console.log(this);
}
main();

运行效果如下:

可以看到我们打印出来的this对象指向全局变量window,而创建的aad变量直接包含在了window对象下面了,所以直接调用函数时this是指向window对象的。

3.构造函数中的this指向
当我们创建一个构造函数时,并且实例化一个对象时,this的指向哪里呢?先创建一个函数

function main(){
this.aad = 234;
this.def = function(){
console.log(this);
};
this.foo = function(){
console.log(this === xxx);
};
this.xoo = function(){
console.log(this === main);
};
}
var xxx = new main();
xxx.def();
xxx.foo();
xxx.xoo();

可以看出xxx.def函数还是指向main函数,但这只是把上下文给打印出来了,但当我们打印this与构造函数以及实现对象比较时就可以看出区别了,与构造函数main比较出来的值是false;与xxx函数比较时显示是true,所以构造函数this事指向当前实例化对象的。

这就是我关于this学习的总结,希望能给需要的人点帮助,然后有啥不足希望有大神能指点出来。

最新文章

  1. vs无法调试的时候
  2. JEE , EJB概念深入概括
  3. TypeScript学习笔记(四):函数
  4. 利用Tree命令生成磁盘文件列表
  5. Unity3D之MeleeWeaponTrail武器轨迹插件的使用
  6. 修改SQL Server 排序规则 (未能排它地锁定数据库以执行该操作)
  7. 编译Android源代码与内核总结
  8. 使用Unity创建塔防游戏(Part2)
  9. 详细分析apache httpd反向代理的用法
  10. Codeforces Round #432 Div. 1 C. Arpa and a game with Mojtaba
  11. 消息中间件 MQ
  12. 第74节:Java中的Cookie和Session
  13. IronPython初体验
  14. [MySQL学习]STRICT_ALL_TABLES相应的OUT of RANGE VALUE FOR COLUMN和DATA truncated FOR COLUMN
  15. C#【结对编程作业】小学数学习题助手
  16. 禁止网站被别人通过iframe引用
  17. [转]IISExpress配置使其能通过IP访问方法
  18. debian8.4 ubuntu14.04双系统_debian8.4硬盘安装
  19. 杨辉三角(Pascal Triangle)的几种C语言实现及其复杂度分析
  20. 解决 php提交表单到当前页面,刷新会重复提交 的问题

热门文章

  1. 怎么在自己的windows上创建虚拟机(linux centos7)
  2. C++雾中风景18:C++20, 从concept开始
  3. ElasticSearch集成SpringBoot与常见使用方法
  4. java多线程中常用指令
  5. *****又错一道,不知道为啥。。。 ybt【例5.19】字符串判等
  6. kubernetes如何强制删除namespace
  7. Go 语言控制台输入&生成随机数
  8. 内网渗透----Linux下信息收集
  9. [root-me](web-client)write up 一个大坑怎么填啊
  10. 数字IC笔试题-芯源