gpt4 book ai didi

javascript OOP - 不是函数

转载 作者:行者123 更新时间:2023-11-28 19:01:25 25 4
gpt4 key购买 nike

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

当像index.php这样的站点被加载时,总是会创建一个 Controller 对象。并调用一个函数。

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

但是我收到一个错误,指出 Model 不是函数。

文件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() { ... }
}

更新:错误是变量和函数同名。

最佳答案

您有一些错误:

首先:你有一个 var 和一个类/函数,它们在以下位置具有相同的名称:

var Controller = new Controller();

这不好,因为一个可能会混淆另一个。改变这个名字。另外,按照惯例,变量以小写字母开头,以区别于函数。

然后,这一行:

this.load() = function()

应该是:

this.load = function()

然后,如果您收到“模型不是函数”消息,可能是因为您没有按正确的顺序放置 js 文件。在 html 中,Model.js 应该位于 Controller.js 之前。请包含正在加载这些文件的 html 部分。我应该或多或少像这样:

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

希望有帮助。

关于javascript OOP - 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32463468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com