按名称调用闭包中的本地函数
Calling local functions in closure by name
我有以下代码结构:
(function() {
var Module = (function() {
var firstMethod = function() {
var name = 'secondMethod';
console.log(window[name]());
};
var secondMethod = function() {
return 2;
};
return {
firstMethod: firstMethod
};
})();
Module.firstMethod();
})();
代码应该返回2
,但它返回一个错误,即window[name]
未定义,这是真的。
为什么这是未定义的,我该如何解决?
不清楚您想要做什么:您定义了var secondMethod
,这使它成为本地的。window
用于全局变量。你可以:
window.secondMethod = function() { return 2 }
或:
(function() {
function Module() {
this.firstMethod = function() {
var name = 'secondMethod';
console.log(this[name]());
};
this.secondMethod = function() {
return 2;
};
return this;
};
var module = new Module();
module.firstMethod();
})();
(function () {
var Module = (function () {
var firstMethod = function () {
var name = 'secondMethod';
console.log(window[name]());
};
window.secondMethod = function () {
return 2;
};
return {
firstMethod: firstMethod
};
})();
Module.firstMethod();
})();
相关文章:
- 构造函数函数闭包变量
- var 函数名称与函数闭包中的名称分配
- 函数闭包
- 何时使用自包含函数(闭包),何时不使用自包含函数
- 避免在 JavaScript 中使用函数闭包
- 难以理解Javascript嵌套函数/闭包
- 在 Javascript 中优化函数闭包的使用有多大价值
- 调用超级构造函数(闭包编译器和库)
- 如何从浏览器控制台访问存储在函数闭包中的 javascript 变量
- 如何在 javascript 中访问父函数闭包
- 函数闭包中的另一个jQuery版本
- jquery对象文字函数/闭包-缺少一些明显的东西
- 这两个使用父类的函数闭包有什么区别吗?
- JavaScript自调用函数闭包不能正常工作
- 改变“;var”;在创建新实例的构造函数闭包内部
- 函数闭包显示外部函数的变量
- 如何使用jsdoc-toolkit记录匿名函数(闭包)
- .prototype不允许在函数闭包中使用
- 自调用匿名函数闭包内变量的生命周期
- 多个文件上的相同函数闭包