老生常谈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 相关文章推荐
javascript里模拟sleep(两种实现方式)
Jan 25 Javascript
jquery实现智能感知连接外网搜索
May 21 Javascript
JS将制定内容复制到剪切板示例代码
Feb 11 Javascript
Bootstrap实现带动画过渡的弹出框
Aug 09 Javascript
JavaScript下拉菜单功能实例代码
Mar 01 Javascript
jQuery实现frame之间互通的方法
Jun 26 jQuery
JavaScript基础心法 数据类型
Mar 05 Javascript
Node 升级到最新稳定版的方法分享
May 17 Javascript
实例详解带参数的 npm script
May 28 Javascript
Layui实现主窗口和Iframe层参数传递
Nov 14 Javascript
JavaScript进阶(三)闭包原理与用法详解
May 09 Javascript
JavaScript位置参数实现原理及过程解析
Sep 14 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
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
php实现的简单日志写入函数
2015/03/31 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
PHP进阶学习之类的自动加载机制原理分析
2019/06/18 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
cookie中的path与domain属性详解
2013/12/18 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
基于html5和nodejs相结合实现websocket即使通讯
2015/11/19 NodeJs
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
JavaScript实现移动端轮播效果
2017/06/06 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
详细解析Python中__init__()方法的高级应用
2015/05/11 Python
详解Python中最难理解的点-装饰器
2017/04/03 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
python使用配置文件过程详解
2019/12/28 Python
Python __slots__的使用方法
2020/11/15 Python
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
职业生涯规划怎么写
2013/12/29 职场文书
初中校园广播稿
2014/02/02 职场文书
2014年教师工作总结
2014/11/10 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书
MySQL Server 层四个日志
2022/03/31 MySQL