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同时提交多个Web表单的方法
Dec 26 Javascript
javascript 打开页面window.location和window.open的区别
Mar 17 Javascript
使用jQuery模板来展现json数据的代码
Oct 22 Javascript
javascript中全局对象的parseInt()方法使用介绍
Dec 19 Javascript
js实现的万能flv网页播放器代码
Apr 30 Javascript
JavaScript_ECMA5数组新特性详解
Jun 12 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
Apr 29 jQuery
bootstrap基本配置_动力节点Java学院整理
Jul 14 Javascript
Node.js  REPL (交互式解释器)实例详解
Aug 06 Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 Javascript
为react组件库添加typescript类型提示的方法
Jun 15 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 XML操作类DOMDocument
2009/12/16 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
2014/10/31 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
Python制作钉钉加密/解密工具
2016/12/07 Python
python中列表和元组的区别
2017/12/18 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
Python 中判断列表是否为空的方法
2019/11/24 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
2020/12/14 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
英国高级百货公司:Harvey Nichols
2017/01/29 全球购物
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
美国最古老的精致书写工具制造商:A.T. Cross(高仕)
2018/01/30 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
幸福家庭事迹材料
2014/02/03 职场文书
个人批评与自我批评
2014/10/15 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang