JS中内嵌函数中this关键字的使用
this关键字的使用
在嵌套函数中:和变量不同,this关键字没有作用域的限制,在嵌套函数的内部使用this关键字可以分为以下两种情况:
1)如果嵌套函数作为方法调用,那么this为当前的上下文。
2)如果当做函数调用,那么this的值依赖于当前使用的是否为严格模式,在非严格模式下,this为全局上下文,否则为undefined.
例如:
var test1={
a:1,
b:2,
fun1:function(){
console.log(“fun1: “ +this); //this为test1对象
function f(){
console.log(“f: “ +this); //this 为undefined 或者全局对象
}
}
}
因此为了能够在函数f中也可以调用上下文的this对象,可以使用通过如下方法解决:
例如
var test1={
a:1,
b:2,
fun1:function(){
console.log(“fun1:this : “ +this); //this为test1对象
var outer = this;
function f(){
console.log(“f:this: “ +this); //this 为undefined 或者全局对象
console.log(“f:outer: ” +outer);//outer则为外层的对象。
}
}
}
这也再次证明了this关键字与作用域的关系。
JS中内嵌函数中this关键字的使用的更多相关文章
- python易错题之lambda 以及 for循环中内嵌函数
li = [] for x in range(10): print(x) //在函数没有执行前(li[0]()),for 循环中x已经执行完,x会一直为 9 def fun(): print(x) / ...
- 【转】WebResource实现在自定义控件中内嵌JS文件
在类库中的资源 其他项目中要使用 需要嵌入才行 参考文献:WebResource实现在自定义控件中内嵌JS文件 1. WebResource简介 ASP.NET(1.0/1.1)给我们提供了一个开发 ...
- GCC在C语言中内嵌汇编 asm __volatile__ 【转】
转自:http://blog.csdn.net/pbymw8iwm/article/details/8227839 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达 ...
- GCC在C语言中内嵌汇编 asm __volatile__
2012-11-26 22:20 17958人阅读 评论(2) 收藏 举报 分类: linux(59) 架构管理(24) C/C++(59) 目录(?)[+] 在内嵌汇编中,可以将C语言表达式 ...
- Linux内核--C语言中内嵌汇编 asm __volatile__
在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可 ...
- Linux内核系列—C语言中内嵌汇编 asm __volatile__,asm__volatile_【转】
转自:http://www.bkjia.com/Androidjc/1109412.html 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器, ...
- SSE 系列内置函数中的 shuffle 函数
SSE 系列内置函数中的 shuffle 函数 邮箱: quarrying@qq.com 博客: http://www.cnblogs.com/quarryman/ 发布时间: 2017年04月18日 ...
- C#中内嵌资源的读取
起因 作为一个从Cpper转到C#并且直接从事WPF开发的萌新来说,正式编码过程中碰到了不少问题,一路上磕磕碰碰的.因为软件设计需求上的要求,需要将一些配置文件(XML.INI等)内嵌到程序中,等需要 ...
- APP中内嵌H5页面为什么不能下载?
在APP中内嵌H5页面,若页面上存在下载链接,没有任何反应,为什么呢? 原因是app中内嵌的H5页面是WebView解析的,什么是WebView呢? 在Android手机中内置了一款高性能webkit ...
随机推荐
- tomcat 6.0 压缩功能
官方文档: http://tomcat.apache.org/tomcat-6.0-doc/config/http.html
- git codes
https://github.com/chibi-guts/DressUpProject https://github.com/TuttiFruttiFT/TFAndroid https://gith ...
- 进程环境之C程序的存储空间布局
从历史上讲,C程序一直由下面几部分组成: 正文段.这是由CPU执行的机器指令部分.通常,正文段是可共享的,所以即使是频繁执行的程序(如文本编辑器.C编译器和shell等)在存储器中也只需有一个副本,另 ...
- java_jdbc_反射技术将查询结果封装为对象
package cn.itcast.Reflect; import java.lang.reflect.InvocationTargetException; import java.lang.refl ...
- 外网访问SVN
1.路由端口映射: 进入路由器管理管理界面-->转发规则-->虚拟服务器 将端口3690(svn默认端口)和你的局域网IP(如192.168.1.104)映射,勾上“启动”,保存,OK了. ...
- Java设计模式09:单例模式的强化(控制实例个数n)
1. 单例模式的本质: 控制实例数目(目的节约资源) 2. 单例模式体现的一些思想: (1)延迟装载(Lazy Load):懒汉式 (2)缓存:饿汉式 3. 单例模式的变形使用: 控制使用实例个数为3 ...
- Swift基础学习01
相关网站:http://www.cnblogs.com/tt_mc/p/3871295.html 相关辅助操作: 可以在右边直接查看输出值 可能出现的常见问题: 1.凡是=注意左右间距一样 2 ...
- Linux上安装Squall
Squall是Storm之上的类SQL查询工具,能够将类SQL语句转换成topology,然后提交给Storm运行. 安装Squall前要先安装Java和sbt(simple build tool), ...
- (转)STL
C++容器类 C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等:后者包括set,map,multiset,multimap等. 若需要存储的元素数在 ...
- JavaScript高级程序设计(第三版)学习笔记8、9、10章
第8章,BOM BOM的核心对象是window,具有双重角色,既是js访问浏览器的一个接口,又是ECMAScript规定的Global对象.因此,在全局作用域中声明的函数.变量都会变成window对象 ...