Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未定义自创建js库对象_Javascript_Jquery - Fatal编程技术网

Javascript 未定义自创建js库对象

Javascript 未定义自创建js库对象,javascript,jquery,Javascript,Jquery,我正在练习构建一个像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"><

我正在练习构建一个像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>

您的
如果
是问题所在。将其更改为检查
Todo
是否为
未定义
,而不是
功能
,即

if (typeof(window.Todo) === "undefined")
这条线

if (typeof(defineTodo) === "undefined") {
将始终返回false,因此您没有使用
defineTodo()

我认为更好的条件是:

 window.Todo = window.Todo || defineTodo();
请参见运行示例:
(功能(窗口){
“严格使用”;
函数defineTodo(){
var Todo={};
Todo.print=函数(){
控制台日志(“待办事项”);
};
返回待办事项;
}
window.Todo=window.Todo | | defineTodo();
})(窗口);
Todo.print()//Todo未定义
 window.Todo = window.Todo || defineTodo();