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 URL锚点取值方法
Feb 25 Javascript
JS 按钮点击触发(兼容IE、火狐)
Aug 07 Javascript
JQuery中$.ajax()方法参数详解及应用
Dec 12 Javascript
jquery实现的一个简单进度条效果实例
May 12 Javascript
jQuery中triggerHandler()方法用法实例
Jan 19 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
Aug 08 Javascript
在vscode里使用.vue代码模板的方法
Apr 28 Javascript
详解Koa中更方便简单发送响应的方式
Jul 20 Javascript
vue实现标签云效果的方法详解
Aug 28 Javascript
node.js使用fs读取文件出错的解决方案
Oct 23 Javascript
JavaScript前端开发时数值运算的小技巧
Jul 28 Javascript
如何将Node.js中的回调转换为Promise
Nov 10 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面向对象全攻略 (十) final static const关键字的使用
2009/09/30 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
2013/12/05 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
jQuery为某个div加入行样式
2017/06/09 jQuery
基于webpack 实用配置方法总结
2017/09/28 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
复制粘贴功能的Python程序
2008/04/04 Python
在Django框架中设置语言偏好的教程
2015/07/27 Python
python 写入csv乱码问题解决方法
2016/10/23 Python
简单了解python列表和元组的区别
2020/05/14 Python
Django多数据库联用实现方法解析
2020/11/12 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
大四自我鉴定范文
2013/10/06 职场文书
捐资助学倡议书
2014/04/15 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
观看建国大业观后感
2015/06/01 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python