谈谈你对This对象的理解?
1、this总是指向函数的直接调用者(而非间接调用者);
2、如果有new关键字,this指向new出来的那个对象;
3、在事件中,this指向触发这个事件的对象,特殊的是,IE中的attachEvent中的this总是指向全局对象
Window;
看看下边几个例子,或许可以更好的理解this对象
this的指向
this表示当前对象,this的指向是根据调用的上下文来决定的,默认指向window对象
全局环境
全局环境就是在<script></script>里面,这里的this始终指向的是window对象,
<script>console.log(this)</script> 指向window对象
局部环境
在全局作用域下直接调用函数,this指向window
<script>
function func(){
console.log(this) ;//this指向的还是window对象
}
func();
</script>
对象函数调用,哪个对象调用就指向哪个对象
<input type="button"id="btnOK" value="OK">
<script>
varbtnOK=document.getElementById("btnOK");
btnOK.onclick=function(){
console.log(this);//this指向的是btnOK对象
}
</script>
使用 new 实例化对象,在构造函数中的this指向实例化对象。
<script>
var Show=function(){
this.myName="Mr.Cao"; //这里的this指向的是obj对象
}
var obj=new Show();
</script>
使用call或apply改变this的指向
<script>
var Go=function(){
this.address="深圳";
}
var Show=function(){
console.log(this.address);//输出 深圳
}
var go=new Go();
Show.call(go);//改变Show方法的this指向go对象
</script>
最新文章
- 如何一步一步用DDD设计一个电商网站(七)—— 实现售价上下文
- 通过broadcastreceiver 监听短信问题
- 正确匹配URL的正则表达式
- Balance
- ARM的启动和中断向量表
- Gprinter Android SDK V2.1.4 使用说明
- 关于BitmapFactory.decodeStream(is)方法无法正常解码为Bitmap对象的解决方法
- python 、mmap 实现内存数据共享
- 原生态JS实现banner图的常用所有功能
- 阿里云API网关(16)客户端请求的https支持
- ibatis的优缺点及可行性分析
- 【Python实践-2】求一个或多个数的乘积
- C#基础知识之String,Stringbuilder和Stringbuffer
- zabbix通过自动发现tomcat应用端口监控连接数
- C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern)。
- 【388】※ Some useful websites for learning Python
- springboot配置il8n
- IDEA安全编码组件
- .net core signalR 忽略https 证书
- Java JDK下载安装及配置