老生常谈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代码必备[js多浏览器兼容写法]
Oct 29 Javascript
javascript innerText和innerHtml应用
Jan 28 Javascript
浅析js设置控件的readonly与enabled属性问题
Dec 25 Javascript
JS判断、校验MAC地址的2个实例
May 05 Javascript
基于jQuery实现下拉框
Nov 24 Javascript
JavaScript中实现map功能代码分享
Jun 11 Javascript
js中document.referrer实现移动端返回上一页
Feb 22 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
Mar 23 Javascript
用JS实现简单的登录验证功能
Jul 28 Javascript
js实现动态添加上传文件页面
Oct 22 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
Aug 01 Javascript
vue同个按钮控制展开和折叠同个事件操作
Jul 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中的array数组类型分析说明
2010/07/27 PHP
js style动态设置table高度
2014/10/21 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
简要了解jQuery移动web开发的响应式布局设计
2015/12/04 Javascript
浅析javascript的return语句
2015/12/15 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
微信小程序时间标签和时间范围的联动效果
2019/02/15 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
Nodejs实现WebSocket代码实例
2020/05/19 NodeJs
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
python实现2014火车票查询代码分享
2014/01/10 Python
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
django跳转页面传参的实现
2020/09/17 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
C语言笔试题回忆
2015/04/02 面试题
高中体育教学反思
2014/01/29 职场文书
天猫某品牌专卖店运营计划书
2014/03/21 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
申论倡议书范文
2014/05/13 职场文书
法人委托书的范本格式
2014/09/11 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
Nginx访问日志及错误日志参数说明
2021/03/31 Servers
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
springboot中一些比较常用的注解总结
2021/06/11 Java/Android