老生常谈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 相关文章推荐
网页自动刷新,不产生嗒嗒声的一个解决方法
Mar 27 Javascript
jQuery MD5加密实现代码
Mar 15 Javascript
jquery中this的使用说明
Sep 06 Javascript
使用POST方式弹出窗口的两种方法示例介绍
Jan 29 Javascript
javascript实现动态侧边栏代码
Feb 19 Javascript
javascript设计模式之中介者模式Mediator
Dec 30 Javascript
jQuery 3.0 的变化及使用方法
Feb 01 Javascript
微信小程序 表单Form实例详解(附源码)
Dec 22 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
Dec 26 Javascript
详解基于Vue+Koa的pm2配置
Oct 24 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
Sep 03 Javascript
JavaScript实现两个数组的交集
Mar 25 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生成扭曲及旋转的验证码图片
2013/06/07 PHP
yii的CURD操作实例详解
2014/12/04 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
thinkPHP5.0框架命名空间详解
2017/03/18 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
2018/08/13 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
antd中table展开行默认展示,且不需要前边的加号操作
2020/11/02 Javascript
原生JavaScript实现换肤
2021/02/19 Javascript
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
Python实现钉钉订阅消息功能
2020/01/14 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
遥感技术与仪器求职信
2014/02/22 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
春节慰问信范文
2015/02/15 职场文书
Redis如何实现分布式锁
2021/08/23 Redis