深入理解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 相关文章推荐
JavaScript中的类继承
Nov 25 Javascript
jQuery让控件左右移动的三种实现方法
Sep 08 Javascript
js使用ajax读博客rss示例
May 06 Javascript
JS判断是否长按某一键的方法
Mar 02 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
Oct 27 Javascript
常用jQuery选择器汇总
Feb 02 Javascript
使用Require.js封装原生js轮播图的实现代码
Jun 15 Javascript
Async Validator 异步验证使用说明
Jul 03 Javascript
vue使用监听实现全选反选功能
Jul 06 Javascript
vue form 表单提交后刷新页面的方法
Sep 04 Javascript
详解处理Vue单页面应用SEO的另一种思路
Nov 09 Javascript
Vue3为什么这么快
Sep 23 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
一个显示天气预报的程序
2006/10/09 PHP
用php写的serv-u的web申请账号的程序
2006/10/09 PHP
手把手教你使用DedeCms V3的在线采集图文教程
2007/04/03 PHP
php制作中间带自己定义图片二维码的方法
2014/01/27 PHP
PHP 错误处理机制
2015/07/06 PHP
php类的定义与继承用法实例
2015/07/07 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
Python实现图片转字符画的示例代码
2017/08/21 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
python爬虫之遍历单个域名
2019/11/20 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
优秀的自荐信要注意哪些
2014/01/03 职场文书
企业总经理任命书
2014/06/05 职场文书
关于环保的标语
2014/06/13 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
党员演讲稿
2014/09/04 职场文书
武当山导游词
2015/02/03 职场文书
求职简历自我评价2015
2015/03/10 职场文书
2015年化验员工作总结
2015/04/10 职场文书
幼儿园中班教学反思
2016/03/03 职场文书