老生常谈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 方法大全方便学习参考
Feb 25 Javascript
Javascript 面向对象 继承
May 13 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
Jun 11 Javascript
基于bootstrap实现收缩导航条
Mar 17 Javascript
JavaScript之iterable_动力节点Java学院整理
Jun 29 Javascript
浅谈mint-ui 填坑之路
Nov 06 Javascript
使用命令行工具npm新创建一个vue项目的方法
Dec 27 Javascript
Node.js 多线程完全指南总结
Mar 27 Javascript
vue改变循环遍历后的数据实例
Nov 07 Javascript
VUE实现自身整体组件销毁的示例代码
Jan 13 Javascript
详解ES6 CLASS在微信小程序中的应用实例
Apr 24 Javascript
Vue实现穿梭框效果
Sep 30 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开发--使用七牛云储存
2017/09/14 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
多个Vue项目部署到服务器的步骤记录
2020/10/22 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
Python 调用 zabbix api的方法示例
2019/01/06 Python
python+mysql实现教务管理系统
2019/02/20 Python
简单介绍python封装的基本知识
2019/08/10 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
大学军训感言200字
2014/02/26 职场文书
计算机专业自荐信
2015/03/05 职场文书
新学期开学标语2015
2015/07/16 职场文书
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS