This
来源:互联网 发布:淘宝达人v任务 编辑:程序博客网 时间:2024/04/29 21:29
本文不系统讲解,只解释几个特殊例子。
<script> var obj={ name:"mao", ftn00:(function(){ console.log(this); })(), ftn01:function(){ console.log(this); return function(){ console.log(this); } },//普通 ftn02:(function(){ console.log(this); return function(){ console.log(this); } })()//自调用 }</script>
请看准上面的对象及他的属性,下面即将袭来一大波花式调用:
console.log(obj.ftn00);//undefined
window在定义obj时就调用了自调用函数,返回undefined。
obj.ftn01();obj.ftn01()();
1)obj调用自己的方法,this肯定为obj
2)第一个括号调用完这个函数就已经结束了,然后返回的匿名函数由window来调用
var ff=obj.ftn01;//此时ff相当于是window的一个属性ff();ff()();
1)window调用自己的属性
2)同理,匿名函数由window来调用
obj.ftn02();
此时ftn02属性的值已经是那个返回的函数,所以对象调用自己的属性方法,this为这个对象。
var f=obj.ftn02; f();//window的属性
window调用自己的属性。
总结:看this主要看是谁调用了这个方法。
0 0
- this
- this
- this
- this
- this
- this
- this
- this
- this
- this
- this
- $(this)
- this
- this
- this
- this
- $(this)
- this
- PLSQL中显式Cursor、隐式Cursor、动态Ref Cursor
- 代码之外--整型数据那点事
- ccf试题 数字排序
- 生成验证码
- 操作系统笔记(六)页面置换算法 FIFO法 LRU最近最久未使用法 CLOCK法 二次机会法
- This
- 程序员,别了校园入了江湖
- 守护进程&创建守护进程&fork一次和fork两次的区别
- DOS批处理高级教程(一) 批处理基础
- 树莓派学习笔记二:软件包安装
- 爬虫:抓取某年某月某日某地的天气信息
- 使用maven构建项目
- J2SE小项目—猜字母游戏
- VirtualBox与主机共享文件夹