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 相关文章推荐
javascript编程起步(第七课)
Jan 10 Javascript
简单三步,搞掂内存泄漏
Mar 10 Javascript
Jquery+JSon 无刷新分页实现代码
Apr 01 Javascript
javascript ajax的5种状态介绍
Aug 18 Javascript
基于ajax实现文件上传并显示进度条
Aug 03 Javascript
每天一篇javascript学习小结(属性定义方法)
Nov 19 Javascript
animate 实现滑动切换效果【实例代码】
May 05 Javascript
Javascript Event(事件)的传播与冒泡
Jan 23 Javascript
js实现5秒倒计时重新发送短信功能
Feb 05 Javascript
vue登录路由验证的实现
Dec 13 Javascript
JS轮播图的实现方法2
Aug 25 Javascript
微信小程序实现页面左右滑动
Nov 16 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的无限分类实现想法~
2007/01/02 PHP
PHP读取目录下所有文件的代码
2008/01/07 PHP
优化PHP程序的方法小结
2012/02/23 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
JS 数字转换研究总结
2013/12/26 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
python处理csv数据的方法
2015/03/11 Python
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
内部类的定义、种类以及优点
2013/10/16 面试题
初中美术教学反思
2014/01/29 职场文书
小学体育教学反思
2014/01/31 职场文书
企业宣传口号
2014/06/12 职场文书
师范生求职自荐信
2014/06/14 职场文书
2014年教研员工作总结
2014/12/23 职场文书
班主任高考寄语
2015/02/26 职场文书
信息技术研修心得体会
2016/01/08 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
MySQL创建管理子分区
2022/04/13 MySQL
python缺失值填充方法示例代码
2022/12/24 Python