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 相关文章推荐
判断用户是否在线的代码
Mar 05 Javascript
js中settimeout方法加参数的使用实例
Feb 27 Javascript
浅析JavaScript基本类型与引用类型
May 28 Javascript
JavaScript设计模式经典之命令模式
Feb 24 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
Jan 18 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
Jun 20 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
Sep 22 Javascript
jquery获取transform里的值实现方法
Dec 12 jQuery
手动下载Chrome并解决puppeteer无法使用问题
Nov 12 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
Mar 08 Javascript
layui原生表单验证的实例
Sep 09 Javascript
vuejs实现下拉框菜单选择
Oct 23 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
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
HTML Dom与Css控制方法
2010/10/25 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
全面了解python字符串和字典
2016/07/07 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
Python OpenCV处理图像之滤镜和图像运算
2018/07/10 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
flask session组件的使用示例
2018/12/25 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
python将音频进行变速的操作方法
2020/04/08 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
使用Html5多媒体实现微信语音功能
2019/07/26 HTML / CSS
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
什么是反射
2012/03/17 面试题
甜美蛋糕店创业计划书
2014/01/30 职场文书
简单租房协议书
2014/04/09 职场文书
小学生植树节活动总结
2014/07/04 职场文书
2014年管理工作总结
2014/11/22 职场文书
晚会开幕词
2015/01/28 职场文书