this对象解析

this在js中有着非常广泛的应用,但其所指的对象也常常让人摸不着头脑,简而言之: this指的就是调用函数的对象,最常见的莫过以下几种

1.直接使用函数,则为window对象

function a(){
	this.a= 1
	console.log(this)
}
a() //window对象

调用函数a的自然是window对象,无需赘述

2.作为对象属性被调用,是该对象

var o= {
	a: 1,
	b: function(){
		this.a= 2
		console.log(this.a)
		console.log(this)
	}
}
o.b()

输出结果:

3.作为构造函数的属性被调用,指的是该实例对象

function o() {
	this.a= 1;
	this.b= ()=>{
		console.log(this)
	}
}
var o1= new o()
o1.b()

4.apply或call函数调用,根据语法指的是第一个参数

function a(val){
	console.log(val)
	console.log(this)
}
a.call(1, 2)

输出结果为:

1调用了a函数,并将2作为参数,因此this指向数字1

时间: 2024-11-01 09:26:18

this对象解析的相关文章

【美妙的Python之三】Python 对象解析

美妙的Python之Python对象 简而言之: Python 是能你无限惊喜的语言,与众不同.         Python对象概念的理解,是理解Python数据存储的前提.Python使用对象来存储数据,构造任何类型的值都是对象.         1.Python 对象:         Python的对象有3个属性:         标识:每个对象都有一个唯一的标识,通过  id(  )  可以查看对象的标识.         类型:对象的类型,指明该对象可以存储的数据类型,通过  typ

Delphi中的Sender:TObject对象解析

Delphi中的Sender:TObject对象解析 procedure TForm1.Button1Click(Sender: TObject); begin end; 解析:Procedure是过程,TForm是窗体类,加上数字就是某个窗体,像TForm1就是Form1窗体. Button1是你的按钮控件的名称,Button1Click就是按钮的单击事件,(Sender:Tobject)就是发送消息到对象,这里默认为本窗体. Sender的类型是Tobject,是Tobject的派生类. D

【连载】数据库审计产品常见缺陷(4)数据库对象解析错误

继上期为大家介绍了有关数据库审计多语句无法有效分割的问题,本期,安华金和围绕数据库对象解析错误分析数据库审计产品常见缺陷.数据库审计产品中一个重要需求是要有效记录下来SQL语句的操作类型.访问对象:根据这些操作类型和访问对象,审计产品可以有效地制订告警策略,可以有效地根据操作类型.访问对象进行事后的追踪与检索.我国相关部门的数据库审计产品标准中要求:应对数据库网络访问对象的名称进行准确审计,包括数据库服务器名称.IP名称.数据库名称.表.视图.序列.包.存储过程.函数.库.索引和触发器等. 目前

java笔记--String类对象解析与运用

1.String中的equals和==的区别 String是对象而非基本数据类型,不能使用"=="来判断两个字符串是否相当, 判断两个字符串内容是否相同用equals(); 判断两个字符串内存地址是否相同用"==" 2.startsWith(String str): 判断字符串是否以str为前缀 3.endsWith(String str): 判断字符串是否以str为后缀 4.String 字符串的比较: 1).compareTo()和compareToIgnore

Android调用WebService系列之KSoap2对象解析

在在网络APP中有2个非常重要的节 客户端请求服务端接口的能力 客户端,服务端的对接 而我的Android调用WebService系列共四篇这是最后一篇,所要讲述的只仅仅是Android调用WebService这一种比较少用且不推荐用,但是在一些特定的场合下不得不用的调用方式. Android调用WebService系列之封装能力,Android调用WebService系列之请求调用是讲的请求服务端的能力主要是介绍APP如何拥有,或者说更好的更方便的拥有这种能力 而Android调用WebSer

https 对 json空对象解析的影响

2017年11月24日09:56:01 记录一个问题: PHP返回json给APP(安卓, fastjson) 其中一个值是空对象  json_encode( [ 'aaa' => new stdClass ] ); 在 http 下安卓解析后是:  {"aaa":{}} 在 https 下解析后是:  {"aaa":[]} 还未查到原因 临时解决方法是给aaa一个缺省的非数字键   [ 'aaa' => ['is_empty' => 1] ]

js window.event对象解析

event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. 1.altKey    描述:    检查alt键的状态. 语法:    event.altKey 可能的值:    当alt键按下时,值为 TRUE ,否则为 FALSE .只读.2.button    描述:    检查按下的鼠标键. 语法:    event.button 可能的值:    没按键    按左键    按右键     按左右键    按中间键

Android中自定义常用的三个对象解析(Paint,Color,Canvas)

Paint,Color,Canvas Paint:画笔对象,画图用的"笔" Color:颜色,相当于调料 Canvas:画布,现实中的纸板 Paint 画笔 常用的方法就是设置和获取到画笔的样式: paint.setStyle(); 设置画笔的风格,空心的或者是实心的 paint.setColor(); 设置画笔的颜色 paint.setStrokeWidth(); 设置边框线的宽度 paint.setAlpha(); 设置画笔的Alpha值 paint.setAntiAlias();

JS中的arguments对象解析

在函数体内.标识符arguments是指向实參对象的引用,实參对象是一个类数组对象 arguments[0],arguments.length arguments是什么? 答:1:arguments是收到的实參副本 在词法分析中, 首先按形參形成AO的属性,值为undefined 当实參传来时, 再改动AO的对应属性.   2:并把全部收到实參收集起来,放到一个arguments对象里 t(a,b,c){}, 调用时: t(1,2,3,4,5) 5个參数 此时 , AO属性仅仅有a,bc,3个属