我正在练习构建像jQuery这样的小型js库。使用IIFE时,我创建的对象:Todo未定义。代码是样本,但实际上不知道发生了什么。有人可以帮我这个吗?非常感谢你!
HTML:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src="todo.js"></script>
</head>
<body>
<script type="text/javascript">
Todo.print(); //Todo is not defined
</script>
</body>
</html>
JS:
(function (window) {
"use strict";
function defineTodo () {
var Todo = {};
Todo.print = function () {
console.log("To do");
};
return Todo;
}
if (typeof(defineTodo) === "undefined") {
window.Todo = defineTodo();
}
})(window);
答案 0 :(得分:1)
您的public void moveAllAndBounce() {
for (Bubble bubble : bubbles)
for(int p=0; p<count; p++)
bubble.moveIt();
}
是问题所在。更改它以检查if
是Todo
而不是undefined
,即。
function
答案 1 :(得分:1)
这一行
if (typeof(defineTodo) === "undefined") {
将始终返回false,因此您不会使用defineTodo()
附加Todo
我认为更好的条件可能是:
window.Todo = window.Todo || defineTodo();
查看正在运行的示例:
(function(window) {
"use strict";
function defineTodo() {
var Todo = {};
Todo.print = function() {
console.log("To do");
};
return Todo;
}
window.Todo = window.Todo || defineTodo();
})(window);
Todo.print(); //Todo is not defined
&#13;