谈谈你对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>
相关文章
- Kubernetes 系列(三):剖析Pod对象
- [ IOS ] 视图控制对象ViewController的生命周期
- 【C/C++学院】(4)c++开篇/类和对象/命名空间/类型增强/三目运算符/const专题/引用专题/函数增强
- JavaScript对象的理解 及 字面量对象与数组的关系
- 状态对象:数据库的替代者
- 块存储、文件存储、对象存储的理解
- .Net 垃圾回收和大对象处理
- Atitit 依赖管理之道 1. 概念 依赖管理,是指在什么地方以什么形式引入外部代码。1 1.1.1. 理解模块化和依赖管理:1 1.2. 依赖管理,有三个层面。 单一职责原则,协议对象引用,
- atitit.编程语言 类与对象的 扩展机制.doc
- 通过一个最简单的例子,理解Angular rxjs里的Observable对象的pipe方法
- flutter 对象模型的理解
- Qt——元对象和属性机制
- PostgreSQL的学习心得和知识总结(五十八)|深入理解PostgreSQL数据库 数据库对象权限 赋予及回收机制
- Hibernate持久化对象状态
- boost库在工作(13)绑定器与函数对象之一
- 修改一个对象的所有者
- 对象的深度拓展$.extend(true,{},a,b),深入理解,小心陷阱
- 在DHTML中把整个文档的各个元素作为对象处理的技术是:()
- 对象的容纳
- 2022年11月21日13:32:00——T5——JS对象与Date日期函数
- 一天学完spark的Scala基础语法教程十、类和对象(idea版本)
- 第⑦讲:Ceph集群RGW对象存储核心概念及部署使用