js中this用法实例详解


Posted in Javascript onMay 05, 2015

本文实例讲述了js中this用法。分享给大家供大家参考。具体如下:

1. 指向window

全局变量

alert(this) //返回 [object Window]

全局函数

function sayHello(){
  alert(this);
}
sayHello();

2. 指向该对象(在全局里面this指向window,在某个对象里面this指向该对象,在闭包里面this指向window)

var user="the Window";
var box={
  user:'the box',
  getThis:function(){
    return this.user;
  },
  getThis2:function(){
    return function (){
      return this.user;
    }
  }
};
alert(this.user);//the Window
alert(box.getThis());//the box
alert(box.getThis2()());
//the Window (由于使用了闭包,这里的this指向window)
alert(box.getThis2().call(box));
//the box 对象冒充(这里的this指向box对象)

3. 用apply,call改变函数的this指向

function sum(num1, num2){
  return num1+num2;
}
function box(num1, num2){
  return sum.apply(this, [num1, num2]);
  //this 表示window的作用域 box冒充sum来执行
}
console.log(box(10,10)); //20

4. new 对象

function Person(){
   console.log(this) //将 this 指向一个新建的空对象
}
var p = new Person();

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript Date对象使用总结
May 14 Javascript
浅析js中的浮点型运算问题
Jan 06 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
Jan 07 Javascript
JS中怎样判断undefined(比较不错的方法)
Mar 27 Javascript
Node.js 制作实时多人游戏框架
Jan 08 Javascript
解析javascript中鼠标滚轮事件
May 26 Javascript
javascript文件加载管理简单实现方法
Jul 25 Javascript
javascript拖拽应用实例(二)
Mar 25 Javascript
基于bootstrap实现收缩导航条
Mar 17 Javascript
vue系列之动态路由详解【原创】
Sep 10 Javascript
vue params、query传参使用详解
Sep 12 Javascript
JS Thunk 函数的含义和用法实例总结
Apr 08 Javascript
javascript中返回顶部按钮的实现
May 05 #Javascript
JS简单实现动画弹出层效果
May 05 #Javascript
教你使用javascript简单写一个页面模板引擎
May 05 #Javascript
关于延迟加载JavaScript
May 05 #Javascript
Javascript闭包(Closure)详解
May 05 #Javascript
javascript实现仿IE顶部的可关闭警告条
May 05 #Javascript
JS实现点击按钮后框架内载入不同网页的方法
May 05 #Javascript
You might like
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
PHP实现抓取HTTPS内容
2014/12/01 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
vue实现循环切换动画
2018/10/17 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
详解Django rest_framework实现RESTful API
2018/05/24 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
Python时间序列缺失值的处理方法(日期缺失填充)
2019/08/11 Python
python 遍历pd.Series的index和value
2019/11/26 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
python自动生成sql语句的脚本
2021/02/24 Python
海量信息软件测试笔试题
2015/08/08 面试题
行政经理的岗位职责
2013/11/23 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
2015年学生会个人工作总结
2015/04/09 职场文书
班级联欢会主持词
2015/07/03 职场文书
浅谈Redis的几个过期策略
2021/05/27 Redis
Feign调用全局异常处理解决方案
2021/06/24 Java/Android
总结python多进程multiprocessing的相关知识
2021/06/29 Python
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android