深入理解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操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
Sep 26 Javascript
TreeView 用法(有代码)(asp.net)
Jul 15 Javascript
JS判断不能为空实例代码
Nov 26 Javascript
各浏览器对document.getElementById等方法的实现差异解析
Dec 05 Javascript
JavaScript动态创建link标签到head里的方法
Dec 22 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
Jan 14 Javascript
最全面的百度地图JavaScript离线版开发
Sep 10 Javascript
Easyui的组合框的取值与赋值
Oct 28 Javascript
详解Vue中localstorage和sessionstorage的使用
Dec 22 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
Jul 23 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
Dec 08 Javascript
js实现文字头像的生成代码
Mar 07 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 获取远程文件内容的函数代码
2010/03/24 PHP
解析php中const与define的应用区别
2013/06/18 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
JavaScript实现区块链
2018/03/14 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
Python解析json时提示“string indices must be integers”问题解决方法
2019/07/31 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
2012/09/08 面试题
港湾网络笔试题
2014/04/19 面试题
师范应届生求职信
2013/11/15 职场文书
小学毕业感言300字
2014/02/19 职场文书
生物制药专业求职信
2014/03/11 职场文书
学校消防安全责任书
2014/07/23 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python
go xorm框架的使用
2021/05/22 Golang
Redis实战高并发之扣减库存项目
2022/04/14 Redis