javascript OOP -不是函数

javascript OOP - not a function

本文关键字:函数 OOP javascript      更新时间:2023-09-26

我想构建我的JS代码像MVC模式。

总是当一个站点加载像index.php,一个控制器对象将被创建。然后调用一个函数

在Controller.js文件中这个函数创建一个模型对象。

但是我得到一个错误,说模型不是一个函数。

文件index . php

<script>
    var mController = new Controller();
    mController.load();
</script>
文件Controller.js

 function Controller() 
 {
     console.log('IN CONTROLLER'); // OUTPUT: IN CONTROLLER 
     this.load = function()
     {
         var mModel = new Model(); // OUTPUT: Model is not a function
         mModel.load();
     }
 }
文件Model.js

function Model() 
{
    this.load = function() { ... }
}

你有一些错误:

first:你有一个var和一个类/函数有相同的名字:

var Controller = new Controller();

不太好,因为一个可能会混淆另一个。改个名字吧。变量通常以小写字母开头,以区别于函数。

然后,这一行:

this.load() = function()
应:

this.load = function()

那么如果你得到"模型不是一个函数"的消息可能是因为你没有把js文件在正确的顺序。Model.js应该出现在html中的Controller.js之前。请包括这些文件正在加载的html部分。我应该或多或少像这样:

<script type="text/javascript" src="Model.js"></script>
<script type="text/javascript" src="Controller.js"></script>

希望能有所帮助。