JavaScript—在嵌套的内部函数中调用外部this的方法
2017-08-31 00:33
531 查看
在javascript中经常出现函数中嵌套函数的情况。尤其是在对象函数中嵌套的函数,往往需要调用外部函数(对象函数)的this。
关于这里的this的指向,可以参考我的另一篇文章:http://blog.csdn.net/jlu16/article/details/78588701。
解决方法:
一.
由于在内部函数中将外部对象(obj)的this同名覆盖了,如果预先将外部的this保存在一个不会被覆盖的量中,便可在内部函数中直接使用。
二.
使用call,apply,bind进行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 } };
相关文章推荐
- JavaScript的回调函数内部this的指向问题以及四种绑定this指向的方法
- JavaScript的回调函数内部this的指向问题以及四种绑定this指向的方法
- 改变 javascript 函数 内部 this 指针 指向 的三种方法
- <javascript>this不同调用模式引起的问题,函数内部调用函数this无效
- javaScript 自执行函数—保留异步方法调用的内部变量
- [Asp.net+JS]asp.net中调用javascript自定义函数的方法总结
- python中的嵌套类(内部类调用外部类中的方法函数)
- JS中函数调用的方法(this调用的方法)
- javascript 类中函数调用的that模式,避免this的丢失
- JavaScript 函数的4种调用方法
- asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结
- 在JavaScript里防止事件函数高频触发和高频调用的方法
- JavaScript中七种函数调用方式及对应 this 的含义
- JavaScript实现同时调用多个函数的方法
- 在Angular外部使用js调用Angular控制器中提供的函数方法或变量
- array_map函数在PHP类中调用内部方法简介
- JavaScript 内部函数作用域问题及解决方法
- JavaScript实现显示函数调用堆栈的方法
- nodejs(三) 调用内部和外部方法
- 提供 .Net 下调用非托管Dll内部函数的快捷方法