gpt4 book ai didi

javascript oop 多个类

转载 作者:行者123 更新时间:2023-11-30 18:18:50 26 4
gpt4 key购买 nike

您好,我在使用 JavaScript 时遇到了问题!我有 main.js 和 Model.js。 Model.js 是一个 javascript oop 类,需要访问它在 main.js 中的函数,我该怎么做?我一直收到未定义模型的错误。是否需要工具才能工作或代码中有什么问题?

模型.js

Model = {};   

Model.init = function() {
alert("model");
}

Model.getList = function(){
var list;
$.ajax(
{

url:'???',
type: 'GET',
dataType: 'json',

success: function(data)
{
list=data;
}
error: function(data)
{
alert("error");
}
});
return list;
}

主要.js

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {

var testins=new Model();
var list=Model.getList();

alert("result: "+testins);
}

我真的需要一些帮助。

所以我尝试了 MrCode 方法并出于实验原因将代码放在一个文件中,因为 main.js 仍然无法访问 Model.js 文件。

主要.js

 document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
alert("aaa"); //first

var testins=new Model();
var list=testins.getList();

alert("result: "+testins); // third

alert("list"+list); //fourth
}

function Model()
{
this.init = function()
{
alert("Model");
}
this.getList = function()
{
var list;
$.ajax(
{

url:'??',
type: 'GET',
dataType: 'json',

success: function(data)
{
list=data;
alert("success"+list); //fifth
},
error: function(data)
{
alert("error");
}
});
alert("success"+list); //second
return(list);
}
}

但是根据提示,我看到 $.ajax 部分是最后完成的。

最佳答案

function Model() { // this is the "constructor"
}

并替换

Model.init = function() {

通过

Model.prototype.init = function() { // provide the function to all instances

(getList 也一样)

这将启用

  • 你调用new Model()
  • init 函数将由您使用 new Model() 创建的对象继承。

像这样使用它:

var testins=new Model(); // create an instance
var list=testins.getList(); // call the instance method

您可能对 this MDN document about prototype and inheritance 感兴趣.

关于javascript oop 多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12616042/

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