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 Event学习第十一章 按键的检测
Feb 10 Javascript
javascript动态加载二
Aug 22 Javascript
jQuery级联操作绑定事件实例
Sep 02 Javascript
js实现网页标题栏闪烁提示效果实例分析
Nov 20 Javascript
js随机生成网页背景颜色的方法
Feb 26 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
Apr 04 Javascript
js仿微信抢红包功能
Sep 25 Javascript
three.js加载obj模型的实例代码
Nov 10 Javascript
详解VueJS应用中管理用户权限
Feb 02 Javascript
vue权限管理系统的实现代码
Jan 17 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
Nov 16 Javascript
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
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 上传功能实例代码
2010/04/13 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
JavaScript中的Math.sin()方法使用详解
2015/06/15 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
layer实现弹窗提交信息
2016/12/12 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
移动端效果之Swiper详解
2017/10/09 Javascript
vue的全局提示框组件实例代码
2018/02/26 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
2018/09/19 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
使用Python对Access读写操作
2017/03/30 Python
python爬取哈尔滨天气信息
2018/07/14 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
深入了解python中元类的相关知识
2019/08/29 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
大学生的网络创业计划书
2013/12/26 职场文书
节能减耗标语
2014/06/21 职场文书
教师调动申请报告
2015/05/18 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
Python中第三方库Faker的使用详解
2022/04/02 Python
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL
python中pycryto实现数据加密
2022/04/29 Python
JavaScript设计模式之原型模式详情
2022/06/21 Javascript