老生常谈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的执行顺序 之实战篇
Mar 03 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
May 23 Javascript
js获取html参数及向swf传递参数应用介绍
Feb 18 Javascript
JQuery中操作Css样式的方法
Feb 12 Javascript
jquery事件preventDefault()方法用法实例
Jan 16 Javascript
原生JS实现拖拽图片效果
Aug 27 Javascript
一个超简单的jQuery回调函数例子(分享)
Aug 08 Javascript
AngularJS 文件上传控件 ng-file-upload详解
Jan 13 Javascript
js中的触发事件对象event.srcElement与event.target详解
Mar 15 Javascript
JavaScript利用键盘码控制div移动
Mar 19 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
Apr 03 Javascript
vue 数据操作相关总结
Dec 17 Vue.js
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实现定时生成HTML网站首页实例代码
2008/11/20 PHP
php $_ENV为空的原因分析
2009/06/01 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
php之curl设置超时实例
2014/11/03 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
2015/10/23 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
2016/11/26 Javascript
Angular2 组件间通过@Input @Output通讯示例
2017/08/24 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
学院领导推荐信
2013/10/30 职场文书
战略合作意向书范本
2014/04/01 职场文书
师范生见习自我总结
2015/06/23 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书
Python matplotlib多个子图绘制整合
2022/04/13 Python
mysql数据库隔离级别详解
2022/06/16 MySQL