老生常谈JavaScript中的this关键字


Posted in Javascript onOctober 01, 2016

相对于很多其他的面向对象语言来说,this代表的就是当前对象。例如Java中的this就是编译期间确定的。而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的

Java中的this

在以下代码中。this代表的就是p对象。

public class Test { 
public static void main(String[] args) {
Person p = new Person("zmt",30);
System.out.println(p.name);
}
}
class Person{ 
String name;
int age;
Person(String name,int age){
this.name = name;
this.age = age;
}
}

JavaScript中的this

JavaScript 中的 this 含义要丰富得多,它可以是全局对象、当前对象或者任意对象,这完全取决于函数的调用方式。JavaScript 中函数的调用有以下几种方式:作为对象方法调用,作为函数调用,作为构造函数调用,和使用 apply 或 call 调用。下面我们将按照调用方式的不同,分别讨论 this 的含义。

1.作为普通函数调用

在普通函数里,this代表的是window对象

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

2.作为构造函数调用

作用构造函数调用的时候,它代表的是当前对象。这个就和Java一样了。

function Person(name,age){
this.name = name;
this.age = age;
}

以上所述是小编给大家介绍的JavaScript中的this关键字,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
鼠标选择动态改变网页背景颜色的JS代码
Dec 10 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
Feb 11 Javascript
深入理解JS中的变量及作用域、undefined与null
Mar 04 Javascript
chrome下img加载对height()的影响示例探讨
May 26 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
May 04 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
Sep 04 Javascript
js获取表格的行数和列数的方法
Oct 23 Javascript
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
Jan 03 Javascript
从零开始最小实现react服务器渲染详解
Jan 26 Javascript
微信小程序实现图片预览功能
Jan 31 Javascript
详解JS实现系统登录页的登录和验证
Apr 29 Javascript
ES6新特征数字、数组、字符串
Oct 01 #Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
Oct 01 #Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
Oct 01 #Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 #Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 #Javascript
微信小程序 Audio API详解及实例代码
Sep 30 #Javascript
微信小程序 Record API详解及实例代码
Sep 30 #Javascript
You might like
深入解析php模板技术原理【一】
2008/01/10 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
php学习之 循环结构实现代码
2011/06/09 PHP
php json_encode奇怪问题说明
2011/09/27 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
php数组随机排序实现方法
2015/06/13 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
PHP实现的策略模式简单示例
2017/08/25 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
2016/08/19 Javascript
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
python数据结构之列表和元组的详解
2017/09/23 Python
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
方法名是否可以与构造器的名字相同
2012/06/04 面试题
C++面试题目
2013/06/25 面试题
关于人生的感言
2014/01/17 职场文书
函授生自我鉴定
2014/03/25 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python