我有以下代码结构:
(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]
未定义的错误,这是真的。
为什么这个未定义,我该如何解决?
答案 0 :(得分:0)
目前还不清楚你想做什么:你定义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();
})();
答案 1 :(得分:0)
(function () {
var Module = (function () {
var firstMethod = function () {
var name = 'secondMethod';
console.log(window[name]());
};
window.secondMethod = function () {
return 2;
};
return {
firstMethod: firstMethod
};
})();
Module.firstMethod();
})();