导航:首页 > 编程语言 > js获this对象

js获this对象

发布时间:2023-05-22 13:54:09

『壹』 javascript 中的this如何判断他是代表哪一个对象呢

一.This对象的概述
在javascript编程中,我们经常用到this关键字,但有时也经常被它搞得头晕,下面将说明this的作用范围与以及它所指代的对象。
This特指当前对象,所有通过this.attr赋予的属性,都属于当前对象;那当前对象是什么呢,它的作用范围又是什么呢,在不同情况下,this对象的表现形式各不相同,下面就讲讲我对this对象的理解。

二.This所指代的对象

1. 对于javascript,它的编写方式比较随意,但扩展性很强,我们可以使用面向过程的编写方式,也可以使用面向对象的编写方式,在这两种编写方式下,this的表现形式是不同的,下面我们先看一下定义变量的一些方式。
下面我们看一个示例(这是一个面向过程的调用方式,先不急于看结果,你可以自己想一下执行结果该是什么):
functiontest(){
var1=100;
varvar2=100;
this.var3=100;
f1=function(){}
varf2=function(){}
functionf3(){}
this.f4=function(){}
}
test();
alert(typeof var1);
alert(typeof var2);
alert(typeof var3);
alert(typeof f1);
alert(typeof f2);
alert(typeof f3);
alert(typeof f4);

//======以下是上面的执行结果======
1.number
2.undefined
3.number
4.function
5.undefined
6.undefined上面f2的写法等价于f3的写法
7.function
解析:我们可以把window看成一个大对象,它是Window对象的实例化,我们编写的所有javascript代码都包含在该对象内,因此,当前对象this特指window实例。
1. alert(typeof var1);//number
var1是一个未明确定义的变量,根据作用域范围定义,该对象属于window实例的对象,它的作用范围为全局。
2. alert(typeof var2);//undefined
var2是一个明确定义枯核液的变量,根据作用域范围定义,该对象的作用域范围为函数级别,即test函数所属范围,因此不可访问。
3. alert(typeof var3);
var3是以对象属性的方式定义的,但是test调用的时候却是氏手以过程的方式调用,也就是说test没有被实例化成对象,并且test属于window对象,那么当前对象this仍然是window,所以var3属性是属于window的。
4. alert(typeof f1);
f1函数与var1变量同理
5. alert(typeof f2);
f2函数与var2变量同理
6. alert(typeof f3);
f3函数与var2变量同理
7. alert(typeof f4);
f4函数与var3变量同理
//===============================

下面是一个面向对象的调用示例:
functiontest(){
var1=100;
varvar2=100;
this.var3=100;
f1=function(){}
varf2=function(){}
functionf3(){}
this.f4=function(){}
}
t =newtest();
alert(typeof var1);
alert(typeof var2);
alert(typeof var3);
alert(typeof t.var3);
alert(typeof f1);
alert(typeof f2);
alert(typeof f3);
alert(typeof f4);
alert(typeof t.f4);
//======以下是上面的执行结果======
1. Number
2. Undefined
3. Undefined
4. Number
5.没物 Function
6. Undefined
7. Undefined
8. Undefined
9. Function
解析:这次test是使用面向对象的方式调用的,下面我们看一下,为何执行结果会是如此:
1. alert(typeof var1);还是作用域的问题,未明确定义为全局变量
2. alert(typeof var2);明确定义,为函数级别变量
3. alert(typeof var3);
因为test当前是使用面向对象的方式调用的,那么test对象中的当前对象为实例化的test,即this已经不是window对象了,而是test的实例化t
4. alert(typeof t.var3);
由上面解析可知,var3属于对象t,那么自然可以获得此变量
5. alert(typeof f1);同理var1
6. alert(typeof f2);同理var2
7. alert(typeof f3);同理var2
8. alert(typeof f4);同理var3
9. alert(typeof t.f4);同理var3

三.This的操作与修改
上面我们了解了一下this指代的对象和作用范围,但实际上this是可以被指定修改的,我们可以通过call,apply等函数指定当前函数的this对象,通常这些函数也用于继承的实现。
如上面的函数通过call来调用指定this对象,将获得完全不同的执行结果,以下我们通过call实现了javascript的继承。
functionf1(){
this.age=27;
}
functiontest(){
f1.call(this);
this.address='地址';
}
t=newtest();
alert(t.age);
alert(t.address);

不是原创的,希望对你有帮助。

『贰』 js里this指向的对象

this在函数里指向调用当前函数的对象,
each本身是一个函数,如果this可以直接写在each函数中那当然是指span对象,但很明显each里面是嵌套了一个匿名函数的,匿名函数没有显式的调用者,所以只能是最上层的dom代表this

『叁』 js怎样获得上一层的this对象

使用jquery可以很方便的解决这个问题。

parent([expr])

取得一个包含着所有匹配元素内的唯一父元素的元素集合。容

可以使用可选的表达式来筛选。

<div><p>Hello</p><p>Hello</p></div>
<scripttype="text/javascript">
$("p").parent();//获取p元素的父级元素(div);
</script>

『肆』 js函数中this是全局变量还是当前对象

1.this总是指向函数的直接调用者(而非间接调用者)祥昌;
2.如果有new关键字,this指向new出来的那个对象;
3.在事件中,this指向触发这个事件的对象,特殊的是,IE中的拿培attachEvent中的this总是指向全局对谨敏扒象Window;

『伍』 关于JS的THIS

这个问题问到js的精知樱髓了。

在js中,万物皆对象,函数只是对象的一种。

js的this,指代着当前对象的自身(itself),但通过你的问题的内容,发现,你关注的地方并不单单在this关键词。

function a(value){
this.value =value;
alert(this.vlaue);
}
上面的这个函数语句,意味着,创建了名字为a,参数为value的函数对象:
这个函数对象有一个来自于参数的动态属性value;
这个函数对象还有一个返回值为void的window内置函数alert;
这个函数对象自身没有返回值(void)。

alert(new a(1).value);
上面的这个语句,意味着,新建一个参数为1的a对象,并把这个对象的value作为参数赋值给window的alert函数,并执行window的alert函数。
在上面的语句中,测试时,会出现两次警告框,且警告框的内容都是1,这是因为在新建a对象的时候,执行了一次alert,拿到a对象的value后,又执行了一次alert。

alert(window.a(3));
上面的这个语句,意味着,把3作为window对象的a函数的一个参数,执行a函数。
在上面的语句中,测试时,也会出现两次警告框,但是第一次是3,第二次就是undefined了,这是因为,window.a(3)执行的时候,会alert一下,内容就是3,alert(...)执行的时候,因为里面的window.a(3)没有返回值,所以alert的参数就是没有,所以就导致弹出了一个“undefined”

function a(){
fucntion b(){}
return b;
}
new a()()
可以这么写(new a()())的原因是:
1、“new a()” ,这个是个对象创建过程,就是说,这样可以创建一个全新的函数对象。
2、第二个“()”,这个是个函数执行过程,就是说,加上一对“()”后,这个对象函数才开始执行。

a().b()
不可以这么写的原因是:
a()会让这个a函数对象执行后,返回的是一个名字为没有名字的空函数对象,这个空函数搭携丛对象里面,并没有一个名字叫b的方法。
你如果想让上面的a里面的b函数顺利执行,可以参考下面的案例:
function a(){
function b(){alert(111)}
return b;
}
a()();//这样你就顺利的看到这个b函数执行了。

最后给你一个让你头晕的隐租案例,呵呵。考虑一下是如何执行的,这个案例你完全搞明白后,基本上js的函数对象返回值问题,就不会再有了。
function a(){
this.b = function (){
return this.c = function(){
alert(111);
}
}
}
(new a().b())();

『陆』 javascript中this获取当前对象问题

首先,this指的是对函数本身的引用。conclick事件调用的是这个事件,要获取的img的src属性,是dom image的属性,并不是函数change_pic的,所以当然不管用了,最好给函数传参,如onclick="change_pic(this)"吧img这个对象传给函数。函数中通过 参数.src引用就OK了。希望对你有所帮助!

『柒』 js 在对象里怎么获取当前对象

varTool={
name:'工具',
print:function(){
console.log(this.name);//this既是当前对象
},
subObj:{
name:'子工具',
print:function(){
console.log(this.name);//this既是当前`subObj`对象
console.log(Tool.name);//上层对象
}
}
};

『捌』 js中this代表什么意思

代表当前对象啊,js不是有document.getElementByID通过ID获取对象么,this就是获取当前对象,比如id为btn的按钮的onclick方法
onclick="method(this)",这个this就是当前按钮对象,作用和document.getElementByID("btn")一样。

『玖』 关于js中this的对象是谁。

bt.click 相当于一孙搭个函数被绑定到了元素上,所以函数调用的时候,是这个元素触发的函数执行。

所以这个this指代的是元素。

和下面的例子不同。

varlength=10;
vara={
length:链凯知4,
b:function(){
alert(this.length)--->这个时候this指代的是a。
棚消}
}

『拾』 js中的this怎样简单理解

js是基于对象的脚本,在任何作用域下都有this对象。比如直接在script脚本中写的代码内,当前this就指容window,在在function内,this就指当前方法(即对象),如果指定了方法的原型链,this就会指向该方法的原型链
console.log(this);//window
function Test(){
console.log(this);
}
Test.prototype.method=function(){
console.log(this);
}

var test=new Test();//test
test.method();//test

阅读全文

与js获this对象相关的资料

热点内容
cad新文件能找回来吗 浏览:951
导出手机qq文件到u盘 浏览:456
电脑如何打开ppt文件怎么打开方式 浏览:782
魅族锁定区文件夹 浏览:357
刻字cnc怎么编程 浏览:182
学校的网络拓扑结构图 浏览:784
收集100个pdf文件里关键词 浏览:594
苹果关闭4g网络设置 浏览:289
如何监测数据库 浏览:967
拷贝过来的pdf文件 浏览:751
抖音小店的访客数据怎么看 浏览:670
怎么把c语言编程的字符向下移动 浏览:786
sql删除文件组代码 浏览:978
安卓post请求多重json 浏览:776
微信消除数据怎么恢复 浏览:918
小米刷机显示系统找不到指定文件 浏览:528
苹果手机小风扇图app叫什么 浏览:292
繁体中文输入工具 浏览:916
pc桌面壁纸文件夹 浏览:473
微信怎么添加群 浏览:781

友情链接