请帮忙修复script把脚本放在单独的模块中
我添加了一些按钮功能。然后试图把所有的js代码放在一个单独的范围内。也就是说,把它变成一个设计
var testModule = (function() {
}) (this);
生成的代码已停止工作
请帮忙修复script把脚本放在单独的模块中
我添加了一些按钮功能。然后试图把所有的js代码放在一个单独的范围内。也就是说,把它变成一个设计
var testModule = (function() {
}) (this);
生成的代码已停止工作
的问题是,你不从函数返回任何东西,所以testModule
值undefined
。
然后您尝试访问testModule.observable
,它与undefined.observable
相同,这是一个错误。
(你也需要在你的提琴选择jQuery的 - 由OP固定,见注释质疑。)
你忘了传递参数!
关注此片段:
var foo = 'foo';
(function(fooAliasToBeUsedInsideTheClosure){
console.log(fooAliasToBeUsedInsideTheClosure);
}(foo))
(function(){
console.log(fooAliasToBeUsedInsideTheClosure);
}(foo))
打印“富”在控制台中的第一次尝试正常工作。但是第二次失败,因为在闭包中没有与foo var相匹配的参数。然后它在代码中考虑foo = undefined。
在你的例子中,这种情况特别极端,因为你迫使asignment'this = undefined'。
所以,试着在第一时间解决这个问题。
您需要在函数的最后返回:
var testModule = (function() {
return {
observerable : observerable
};
}) (this);
你不觉得你应该上传工作的jsfiddle所有包含的库? (什么是“可观察”?哪个FW?)?在这里添加库标签。 –
jsfiddle似乎并没有为我工作,但无论如何 我建议将jquery添加到您的脚本中,并将所有JavaScript代码放入文档准备好的函数中,例如'$(document).ready(function(){ //你的代码在这里 });' 所以是的,如果你的js代码在移动到另一个文件之前工作,这应该工作。不要忘记添加jQuery库。 祝你好运 – photowalker
@photowalker我相信它是淘汰赛或骨干 –