Angular.JS中的this指向详解


Posted in Javascript onMay 17, 2017

【this详解】

1、谁最终调用函数,this指向谁。

      ① this指向的,永远只可能是对象!!!!!!

      ② this指向谁,永远不取决于this写在哪!!而是取决于函数在哪调用。

      ③ this指向的对象,我们称之为函数的上下文context,也叫函数的调用者

2、※※※※※this指向的规律(与函数调用的方式息息相关):

this指向的情况,取决于函数调用的方式有哪些:

      ① 通过函数名()直接调用:this指向window

      ② 通过对象.函数名()调用的:this指向这个对象

      ③ 函数作为数组的一个元素,通过数组下标调用的:this指向这个数组

      ④ 函数作为window内置函数的回调函数调用:this指向window setInterval  setTimeout 等...

      ⑤ 函数作为构造函数,用new关键字调用时:this指向新new出的对象 

function func(){
   console.log(this);
  }

① 通过函数名()直接调用:this指向window

func(); this--->window

② 通过对象.函数名()调用的:this指向这个对象

     狭义对象

var obj = {
 name:"obj",
 func1 :func
 };
 obj.func1(); this--->obj

     广义对象

document.getElementById("div").onclick = function(){
 this.style.backgroundColor = "red";
 }; this--->div

③ 函数作为数组的一个元素,通过数组下标调用的:this指向这个数组

var arr = [func,1,2,3];
arr[0](); this--->arr

④ 函数作为window内置函数的回调函数调用:this指向window

setTimeout(func,1000);// this--->window
setInterval(func,1000);

⑤ 函数作为构造函数,用new关键字调用时:this指向新new出的对象

var obj = new func(); //this--->new出的新obj

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js前台判断开始时间是否小于结束时间
Feb 23 Javascript
Jquery实现自定义窗口随意的拖拽
Mar 12 Javascript
DOM基础教程之事件对象
Jan 20 Javascript
javascript判断回文数详解及实现代码
Feb 03 Javascript
JS验证不重复验证码
Feb 10 Javascript
js实现滑动到页面底部自动加载更多功能
Feb 15 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
jquery+css实现侧边导航栏效果
Jun 12 jQuery
详谈Node.js之操作文件系统
Aug 29 Javascript
vuex 的简单使用
Mar 22 Javascript
Koa日志中间件封装开发详解
Mar 09 Javascript
优雅地使用loading(推荐)
Apr 20 Javascript
websocket+node.js实现实时聊天系统问题咨询
May 17 #Javascript
JavaScript简单拖拽效果(1)
May 17 #Javascript
node.js连接MongoDB数据库的2种方法教程
May 17 #Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
May 17 #Javascript
Vue.js鼠标悬浮更换图片功能
May 17 #Javascript
12个非常有用的JavaScript技巧
May 17 #Javascript
Javascript中的async awai的用法
May 17 #Javascript
You might like
深入php常用函数的使用汇总
2013/06/08 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
Javascript Memoizer浅析
2014/10/16 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
jQuery 获取多选框的值及多选框中文的函数
2016/05/16 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
Highcharts入门之简介
2016/08/02 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
Python while 循环使用的简单实例
2016/06/08 Python
Python3 模块、包调用&路径详解
2017/10/25 Python
Python搭建FTP服务器的方法示例
2018/01/19 Python
用Python读取几十万行文本数据
2018/12/24 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
python如何求100以内的素数
2020/05/27 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
经典公益广告词
2014/03/13 职场文书
房屋买卖协议书范本
2014/04/10 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书
电影开国大典观后感
2015/06/04 职场文书
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
工厂无线对讲系统解决方案
2022/02/18 无线电
Windows Server 2012 R2 磁盘分区教程
2022/04/29 Servers