我需要validateText
函数来调用modalFunc
。我怎么能这样做?
function geoAlert(lodash) {
var me = this;
return {
modalFunc: function(text) {
alert(text);
},
validateText: function() {
modalFunc("hello")
}
}
}
当我跑步时:
geoAlert.validateText();
我会收到此错误:
ReferenceError: modalFunc is not defined
使用me.modalFunc("hello")
也不起作用。请提前帮助和谢谢。
答案 0 :(得分:3)
看起来你正试图使用一种揭示模块模式;返回一个有效提供方法的对象。为此,您需要按如下方式执行主要功能(注意结尾处的'()'意味着它将立即被调用):
var geoAlert = function(lodash) {
return {
modalFunc: function(text) {
alert(text);
},
validateText: function() {
this.modalFunc("hello")
}
};
}();
geoAlert.validateText('Some text');
我所做的另一项更改是modalFunc需要以 this 作为前缀,因为它作为与 validateText 相同的返回对象的一部分存在。 / p>
答案 1 :(得分:2)
您可以创建一个命名函数:
function geoAlert(lodash) {
function modalFunc(text) {
alert(text);
}
return {
modalFunc: modalFunc,
validateText: function() {
modalFunc("hello")
}
}
}
然后调用validateText
的方式并不重要。但是你仍然应该learn about this
,因为你尝试了var me = this;
的某些内容,而这可能无法做到你想做的事情。