什么是this
2018-06-24 01:49:33来源:未知 阅读 ()
什么是this:
简单来说在调用函数时,指向正在调用函数的对象的 关键字
何时使用:
只要对象 自己的方法,要使用自己的属性时,就用this
下面说一下常用到的各种情况:
1. 对象内部的方法,被对象自己调用:
var ename="scott"; var obj={ ename:"eric", fun:function(){ console.log(this.ename); } }
obj.fun(); // this->obj
2. 函数传递给其他变量存储:
var fun=obj.fun; fun(); // this->window scott
this和定义在哪儿无关!
只和调用时,使用的对象( . 前的对象)有关,如果没有用任何对象,就直接调用的函数this->window
3. 使用call/apply 临时替换this —— 临时的
this->call/apply的第一个参数对象
4. 使用bind基于一个函数创建一个新函数,同时提前绑定this,永久的,不可被替换的!
5. 绑定事件处理函数:// function fun(){...}
1. html: 绑定:<button onclick="fun()"> this->??? btn.onclick=new Function("fun()") function(){//this->btn fun();//this->window } 调用: btn.onclick();//this->btn
2. js: 绑定: btn.onclick=fun; //this->btn btn.addEventListener("click",fun); fun中的this->btn 调用: btn.onclick();//btn.fun();
3. 在对象的方法内部绑定事件处理函数: 事件处理函数中要求 既使用对象的属性,又使用当前事件绑定的元素对象: 不能用bind!因为bind会将当前事件绑定的元素对象 替换 解决: 留住this : var me=this
6. 定时器回调和匿名函数自调: this默认都指window;如果希望使用所属对象的属性: 用bind永久替换this
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 回流和重绘 2019-08-14
- 创建全局组件的三种方式 2019-08-14
- javascript —— this 2019-08-14
- Vue第一天 2019-08-14
- 使用js输出1000以内的水仙花数 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash