JavaScript—在嵌套的内部函数中调用外部this的方法
来源:互联网 发布:网络棋牌信息 编辑:程序博客网 时间:2024/06/08 06:25
在javascript中经常出现函数中嵌套函数的情况。尤其是在对象函数中嵌套的函数,往往需要调用外部函数(对象函数)的this。
var obj = { val : 1, outShow : function(){ (function(){ alert(this.val);//这里的this并不指向obj,不能弹出1 })(); }};
关于这里的this的指向,可以参考我的另一篇文章:http://blog.csdn.net/jlu16/article/details/78588701。
解决方法:
一.
由于在内部函数中将外部对象(obj)的this同名覆盖了,如果预先将外部的this保存在一个不会被覆盖的量中,便可在内部函数中直接使用。
var obj = { val : 1, outShow : function(){ var that = this; (function(){ alert(that.val); })(); }};
二.
使用call,apply,bind进行this绑定。
var obj = { val : 1, outShow : function(){ var innerFunc = function(){ alert(this.val);}; innerFunc.bind(this)(); //弹出1 innerFunc.call(this); //弹出1 innerFunc.apply(this); //弹出1 }};
阅读全文
1 0
- JavaScript—在嵌套的内部函数中调用外部this的方法
- JavaScript 嵌套函数中this的理解
- javascript 内部函数的this
- <javascript>this不同调用模式引起的问题,函数内部调用函数this无效
- JavaScript嵌套函数this的重定向
- 在外部调用私有成员函数的方法
- 在Angular外部使用js调用Angular控制器中提供的函数方法或变量
- 在Angular外部使用js调用Angular控制器中提供的函数方法或变量
- 在J2EE项目中调用外部文件的方法
- vue中如何在外部调用methods的方法
- 改变javascript函数内部this指针指向的三种方法
- 改变javascript函数内部this指针指向的三种方法
- [转]在类的成员函数中调用delete this
- 在类的成员函数中调用delete this
- 在类的成员函数中能不能调用delete this
- 在类的成员函数中调用delete this
- 在类的成员函数中调用delete this
- 在类的成员函数中调用delete this
- STL VECTOR方法
- Windows下使用CMD命令复制多层级目录
- python 多线程 实现端口扫描
- JavaWeb三大技术之Filter
- Python学习笔记 5
- JavaScript—在嵌套的内部函数中调用外部this的方法
- mysql存储过程查询结果循环遍历 判断 赋值 游标等基本操作
- BeautifulSoup的基本用法
- 导入导出excel工具类地址
- 最容易入门的JVM讲解
- Codeforces Round #426 (Div. 2) A B C D E
- 省市(中国大学)二级联动的精髓写法
- Oracle中用户和模式的区别
- DOM(文档对象模型)--1获取节点、节点的增删改