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进行拖拽
Jul 20 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
Dec 15 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
May 28 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
Jun 30 Javascript
JavaScript内存管理介绍
Mar 13 Javascript
阿里云ecs服务器中安装部署node.js的步骤
Oct 08 Javascript
微信小程序  生命周期详解
Oct 27 Javascript
在javaScript中检测数据类型的几种方式小结
Mar 04 Javascript
JS中Safari浏览器中的Date
Jul 17 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
Sep 06 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
Oct 21 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
Nov 26 jQuery
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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
帖几个PHP的无限分类实现想法~
2007/01/02 PHP
php 无限级 SelectTree 类
2009/05/19 PHP
一起来写段JS drag拖动代码
2010/12/09 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
Node.js开发者必须了解的4个JS要点
2016/02/21 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
2017/03/04 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
python使用7z解压apk包的方法
2015/04/18 Python
python发送邮件实例分享
2017/07/28 Python
深入理解Django的中间件middleware
2018/03/14 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
pybind11在Windows下的使用教程
2019/07/04 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
python实现视频读取和转化图片
2019/12/10 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
中专生毕业自我鉴定
2013/11/01 职场文书
实验室的标语
2014/06/20 职场文书
学术会议开幕词
2016/03/03 职场文书
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python
python 学习GCN图卷积神经网络
2022/05/11 Python