深入理解js中this的用法


Posted in Javascript onMay 28, 2016

this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。但是总有一个原则,那就是this指的是调用函数的那个对象。

1、纯粹函数调用。

function test() {  
  this.x = 1;  
  alert(x);
}

test();

其实这里的this就是全局变量。看下面的例子就能很好的理解其实this就是全局对象Global。其实这里的this就是全局变量。看下面的例子就能很好的理解其实this就是全局对象Global。

var x = 1;
function test() {
  alert(this.x);
}
test();//1

var x = 1;
function test() {
  this.x = 0;
}
test();
alert(x);//0

2、作为方法调用,那么this就是指这个上级对象。

function test() {
  alert(this.x);
}

var o = {};
o.x = 1;
o.m = test;
o.m(); //1

3、作为构造函数调用。所谓构造函数,就是生成一个新的对象。这时,这个this就是指这个对象。

function test() {  
   this.x = 1;
}
var o = new test();
alert(o.x);//1

4、apply调用

var x = 0;
function test() {
  alert(this.x);
}

var o = {};
o.x = 1;
o.m = test;
o.m.apply(); //0
o.m.apply(o);//1

当apply没有参数时,表示为全局对象。所以值为0。

以上这篇深入理解js中this的用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
Dec 23 Javascript
保证JavaScript和Asp、Php等后端程序间传值编码统一
Apr 17 Javascript
jQuery 技巧小结
Apr 02 Javascript
jQuery中is()方法用法实例
Jan 06 Javascript
javascript中类的定义方式详解(四种方式)
Dec 22 Javascript
jquery获取点击控件的绝对位置简单实例
Oct 13 Javascript
两种简单的跨域方法(jsonp、php)
Jan 02 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
Oct 11 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
Dec 15 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
js实现继承的方法及优缺点总结
May 08 Javascript
微信小程序swiper使用网络图片不显示问题解决
Dec 13 Javascript
关于function类中定义变量this的简单说明
May 28 #Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
May 28 #Javascript
动态更新highcharts数据的实现方法
May 28 #Javascript
不同js异步函数同步的实现方法
May 28 #Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 #Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
May 28 #Javascript
jquery取消事件冒泡的三种方法(推荐)
May 28 #Javascript
You might like
php对数组排序代码分享
2014/02/24 PHP
php生成RSS订阅的方法
2015/02/13 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
[02:10]DOTA2亚洲邀请赛 EG战队出场宣传片
2015/02/07 DOTA
让 python 命令行也可以自动补全
2014/11/30 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
python变量命名的7条建议
2019/07/04 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
python中Lambda表达式详解
2019/11/20 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
python实现定时发送邮件
2020/12/23 Python
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
4s客服专员岗位职责
2013/12/01 职场文书
销售经理工作职责范文
2013/12/03 职场文书
教师考核鉴定意见
2015/06/05 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
Node与Python 双向通信的实现代码
2021/07/16 Javascript