博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js this
阅读量:6999 次
发布时间:2019-06-27

本文共 1479 字,大约阅读时间需要 4 分钟。

在javascript中,this表示执行上下文,即指向一个对象的指针。

1.最高层的执行上下文是windows对象,在全局作用域中,变量与函数是windows对象的属性。直接调用一个函数fun(), 等价于window. func(),则函数func中的this指向的是 window对象。

(1)

var a = 1;function A(){    alert(this. a);}A();输出1。

A()等价于windows.A(), 函数A在windows上下文中执行,this指向windows对象。a在全局作用域中定义并赋值,a属于windows对象的属性,输出1。

(2)

var a = 1;var obj = {    a : 2,    A : function(){        alert(a);    }}var B = obj. A;B();输出为1。

B()等价于windows.B(), 函数B(即obj. A)的执行上下文是windows, this指向windows对象,因此输出为1。

2.除了最高层的windows的对象,js生成的对象也可构成一个执行上下文。

(1)

var a = 1;var obj = {    a : 2,    A : function(){        alert(this. a);  }obj.A();输出2。

函数A执行上下文是obj, this指向obj对像。this.a = obj.a = 2。

(2)

var a = 1;var obj = {    a : 2,    A : function(){        alert(this.a);     }}function B(){    alert(this.a);}obj.C = B; obj.C();输出为2。

obj.C即B函数的执行上下文是obj,this指向obj。

 

B();输出为1。

B函数的执行上下文是window对象,this指向window对象。

3.默认情况下,this指向上下文。此外,可以指定this的指向。

(1)通过new。执行new时,首先建一个空对象obj,再去执行类函数, 函数中的this指向新建的对象obj, 函数执行完后,obj被赋予一些属性。这个obj就是实例化的对象。

function Class(a,b){  this.a = a;  this.b = b;}var obj = new Class('a','b');

this指向实例化的obj对象。

(2)通过apply()方法或call()方法。

function Parent(c,d){  this.c = c;  this.d = d;}function Child(a,b,c,d){  Parent.apply(this,[c,d]);//使Parent函数中的this指向Child函数中的this(即对象child),并执行Parent函数。  this.a = a;  this.b = b;}var child = new Parent('a','b','c','d'); alert(child.c); 输出c

 call方法与apply方法相同,call方法以单个参数传数据,apply方法以一个数组作为传数据的参数,上面的代码可改为Parent.call(this,c,d)。

转载于:https://www.cnblogs.com/fe-huahai/p/5507901.html

你可能感兴趣的文章
程序员必备系列:开发工具的安装和使用
查看>>
G7在实时计算的探索与实践
查看>>
怎么在电脑上进行屏幕录像?电脑录屏的方法
查看>>
手机照片误删怎么恢复?别说,这招还真管用
查看>>
数领科技|solidworks教程:solidworks快捷键汇总
查看>>
ansible自动部署 zabbix-agent 的模块
查看>>
MYSQL 分组
查看>>
Python新版本手动安装
查看>>
postgresql 9.6 安装并配置远程连接
查看>>
PC电源选购常见误区解惑
查看>>
使用LVS或者阿里云的SLB后如何获取访客真实的IP地址
查看>>
zookeeper安装部署--分布式模式
查看>>
phpstorm 使用Iedis
查看>>
Linux下架设×××(pptp)服务器
查看>>
35岁以前成功的12条黄金法则
查看>>
正则表达式
查看>>
Office 365系列之十五:配置Outlook MAPI方式连接Exchange Online
查看>>
Spring2.5学习笔记2-AOP-利用注解
查看>>
XML文档的JDOM解析
查看>>
存储的IOPS
查看>>