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 相关文章推荐
一个小型js框架myJSFrame附API使用帮助
Jun 28 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
Mar 18 Javascript
CSS3,HTML5和jQuery搜索框集锦
Dec 02 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
Dec 09 Javascript
JavaScript显示当前文档最后修改日期的方法
Mar 19 Javascript
jquery中实现时间戳与日期相互转换
Apr 12 Javascript
js判断浏览器是否支持严格模式的方法
Oct 04 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
Oct 31 Javascript
实现jquery放大镜的两种方法
Feb 22 jQuery
Node.js文件编码格式的转换的方法
Apr 27 Javascript
vue router总结 $router和$route及router与 router与route区别
Jul 05 Javascript
基于JavaScript实现简单的轮播图
Mar 03 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
两种php调用Java对象的方法
2006/10/09 PHP
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
神奇的7个jQuery 3D插件整理
2011/01/06 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
js判断undefined变量类型使用typeof
2013/06/03 Javascript
javascript 寻找错误方法整理
2014/06/15 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
Node.Js中实现端口重用原理详解
2018/05/03 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
python求众数问题实例
2014/09/26 Python
浅谈Python中的数据类型
2015/05/05 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
pycharm 安装JPype的教程
2019/08/08 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
某公司Java工程师面试题笔试题
2016/03/27 面试题
土木工程专业自荐信
2013/10/04 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书
环保公益策划方案
2014/08/15 职场文书
建筑节能汇报材料
2014/08/22 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL
MySQL触发器的使用
2021/05/24 MySQL