JS之This的用法
This的用法
This作为JavaScript中的关键字,在函数中具有四种用法。
一、直接在函数中使用,谁调用这个函数,this就指向谁
例如:
var n = "指我";
function fun(){
console.log(this.n);
}
fun(); //指我
这里this就代表着全局对象。
二、在对象中使用,一般情况下是指向该对象
例如:
function fun(){
console.log(this.n);
}
var obj = {};
obj.n = "在这里";
obj.m = fun;
obj.m(); //在这里
这里的this就指向这个上级对象。
三、在构造函数中使用
例如:
function fun(){
this.n = "LOVE";
}
var obj = new fun();
console.log(obj.n); // LOVE
这里的this就指向这个构造函数生成的一个新的对象。
四、改变This的指向,有两种方法:
1、call(指向谁,参数1、参数2、...)
2、apply(指向谁,[参数1、参数2、...])
这两种方法的作用相同,传递的写法不同
例如:
function Person(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
}
function Worker(name,age,sex,id,tel){
// Person.call(this,name,age,sex);
Person.apply(this,[name,age,sex]);
this.id = id;
this.tel = tel;
}
var worker = new Worker("张三",18,"男","001","123456789");
console.log(worker);
这两种方法的作用都相同

JS之This的用法的更多相关文章
- [转载]js中return的用法
一.返回控制与函数结果,语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二.返回控制,无函数结果,语法为:return; 在大多数情况下,为事件处理函 ...
- js中this的用法
经过近几周的模拟面试题,我查询了一些资料,今天就来说说,在js中this的用法吧.方法有四:第一,用作全局变量,第二,用作表该对象,第三,用作构造函数,第四,用作call和applay
- JQuery之append和appendTo的区别,还有js中的appendChild用法
JQuery之append和appendTo的区别 append()前面是要选择的对象,后面是要在对象内插入的元素内容 appendTo()前面是要插入的元素内容且为Jquery对象,而后面是要选择的 ...
- JS中event.keyCode用法及keyCode对…
js中event.keyCode用法及keyCode对照表 标签: javascriptJavaScriptJavascriptjavaScript 2012-12-11 15:11 HTML Jav ...
- js确认框confirm()用法实例详解
先为大家介绍javascript确认框的三种使用方法,具体内容如下 第一种方法:挺好用的,确认以后才能打开下载地址页面.原理也比较清晰.主要用于删除单条信息确认. ? 1 2 3 4 5 6 7 8 ...
- js进阶ajax基本用法(创建对象,连接服务器,发送请求,获取服务器传过来的数据)
js进阶ajax基本用法(创建对象,连接服务器,发送请求,获取服务器传过来的数据) 一.总结 1.ajax的浏览器的window对象的XMLHtmlRequest对象的两个重要方法:open(),se ...
- 浅谈JS中 reduce() 的用法
过去有很长一段时间,我一直很难理解 reduce() 这个方法的具体用法,平时也很少用到它.事实上,如果你能真正了解它的话,其实在很多地方我们都可以用得上,那么今天我们就来简单聊聊JS中 reduce ...
- JS中 reduce() 的用法
过去有很长一段时间,我一直很难理解 reduce() 这个方法的具体用法,平时也很少用到它.事实上,如果你能真正了解它的话,其实在很多地方我们都可以用得上,那么今天我们就来简单聊聊JS中 reduce ...
- Angular JS中$timeout的用法及其与window.setTimeout的区别
$timeout的用法 angular.js的$timeout指令对window.setTimeout做了一个封装,它的返回值是一个promise对象.当定义的时间到了以后,这个promise对象就会 ...
- JS数组的基本用法
JS数组的用法包括创建.取值赋值.添加以及根据下标(包括数值或字符)来移除元素等等,在本文中将为大家详细介绍,感兴趣的朋友可以参考下. 1.创建数组: //1.1直接创建一个数组对象 var arra ...
随机推荐
- For each...in / For...in / For...of 的解释与例子
1.For each...in for each...in 语句在对象属性的所有值上迭代指定的变量.对于每个不同的属性,执行一个指定的语句. 语法: for each (variable in obj ...
- 字符串匹配(一)----Rabin-Karp算法
题目:假如要判断字符串A"ABA"是不是字符串B"ABABABA"的子串. 解法一:暴力破解法, 直接枚举所有的长度为3的子串,然后依次与A比较,这样就能得出匹 ...
- python之PIL库(Image模块)
PIL(Python Image Library)是python的第三方图像处理库,PIL的功能非常的强大,几乎被认定是Python的官方图像处理库了. 由于PIL仅支持到python2.7于是一群志 ...
- Data - Tools
数据工具汇总 史上最全的大数据分析和制作工具 全球100款大数据工具汇总 SQL 数据分析常用语句 01 - NumPy HomePage:http://www.numpy.org/ NumPy(数值 ...
- Java第三次上机随笔
就记录一下新的收获吧~ 1.定点数(BigDecimal) 先区分一下浮点数和定点数: 浮点数(float/double):小数点可以任意浮动,称为浮点表示法 定点数(BigDecimal):一种数约 ...
- SecureCRT 5.2.2版本下载和注册码
Name: Apollo Interactive Company: Apollo Interactive Serial Number: 03-50-023223License Key: ABMVSR ...
- WebSocket(2)---实现游戏公告功能
实现游戏公告功能 实现功能:游戏管理里发布游戏公告,其它游戏玩家页面能够马上接受到游戏公告信息. 下面直接上代码案例,这里主要展示关键代码,底部有源码. 一.案例 1.pom.xml文件 主要是添加s ...
- log4cplus使用(二)-自定义日志等级
log4cplus支持用户自定义日志等级,操作也比较简单,使用之前贴如下宏定义 #define LOG4CPLUS_MACRO_CREASH_LOG_LEVEL(pred) LOG4CPLUS_UNL ...
- Android--拦截系统BroadcastReceiver
前言 上一篇博客,讲了BroadcastReceiver的一些基础内容,如何注册以及发送一个广播,那是基础,不清楚的可以先看看:Android--BroadcastReceiver.但是在实际开发当中 ...
- Linux环境下tomcat的安装与使用
1.tomcat安装 1.1.前提条件: 需要准备一台Linux机器,我选择的是Ubuntu18. Linux机器上已经安装了JDK,使用java -version命令查看是否安装. stephen@ ...