老生常谈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 相关文章推荐
jquery 1.4.2发布!主要是性能与API
Feb 25 Javascript
Jquery之Ajax运用 学习运用篇
Sep 26 Javascript
jquery学习总结(超级详细)
Sep 04 Javascript
Angularjs制作简单的路由功能demo
Apr 14 Javascript
JavaScript中Date.toSource()方法的使用教程
Jun 12 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
May 26 Javascript
基于Turn.js 实现翻书效果实例解析
Jun 20 Javascript
vue配置多页面的实现方法
May 22 Javascript
vue树形结构获取键值的方法示例
Jun 21 Javascript
js如何实现元素曝光上报
Aug 07 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
Aug 09 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
Feb 24 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
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
浅谈Javascript面向对象编程
2011/11/15 Javascript
关于js datetime的那点事
2011/11/15 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
学习jQuey中的return false
2015/12/18 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
js实现登录与注册界面
2017/11/01 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
微信小程序实现canvas分享朋友圈海报
2020/06/21 Javascript
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
python中函数传参详解
2016/07/03 Python
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
Pyqt5实现英文学习词典
2019/06/24 Python
Python新手学习装饰器
2020/06/04 Python
python ETL工具 pyetl
2020/06/07 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
css3实现平移效果(transfrom:translate)的示例
2020/11/13 HTML / CSS
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
会计自我鉴定
2014/02/04 职场文书
园林技术个人的自我评价
2014/02/15 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
2015年教研组工作总结
2015/05/04 职场文书
基于JavaScript实现省市联动效果
2021/06/22 Javascript
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android