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 相关文章推荐
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
Nov 14 Javascript
中文路径导致unitpngfix.js不正常的解决方法
Jun 26 Javascript
只需一行代码,轻松实现一个在线编辑器
Nov 12 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
Nov 21 Javascript
jQuery遍历Table应用示例
Apr 09 Javascript
Javascript添加监听与删除监听用法详解
Dec 19 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
Apr 26 Javascript
bootstrap布局中input输入框右侧图标点击功能
May 16 Javascript
jQuery Datatables表头不对齐的解决办法
Nov 27 jQuery
vue中axios的封装问题(简易版拦截,get,post)
Jun 15 Javascript
原生js中运算符及流程控制示例详解
Jan 05 Javascript
Typescript类型系统FLOW静态检查基本规范
May 25 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
模拟xcopy的函数
2006/10/09 PHP
在php中取得image按钮传递的name值
2006/10/09 PHP
福利彩票幸运号码自动生成器
2006/10/09 PHP
PHP配置心得包含MYSQL5乱码解决
2006/11/20 PHP
非常精妙的PHP递归调用与静态变量使用
2012/12/16 PHP
php简单实现MVC
2015/02/05 PHP
yii分页组件用法实例分析
2015/12/28 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
js实现按座位号抽奖
2017/04/05 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
2019/05/28 jQuery
python获取txt文件词向量过程详解
2019/07/05 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
python调用私有属性的方法总结
2020/07/24 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
农村改厕实施方案
2014/03/22 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
团日活动总结
2014/04/28 职场文书
岗位职责说明书
2014/05/07 职场文书
老公给老婆的检讨书(精华篇)
2014/10/18 职场文书
图书借阅制度范本
2015/08/06 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书