1

嗨,我在使用 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;
}

main.js

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

function onDeviceReady() {

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

    alert("result: "+testins); 
}

我真的可以使用一些帮助。

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

main.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 部分是最后完成的。

4

2 回答 2

2

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

您可能会对这个 MDN 文档感兴趣,了解原型和继承

于 2012-09-27T07:18:34.180 回答
0
function Model()
{
    // define public methods
    this.init = function()
    {
        alert("Model");
    }

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

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

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

var testins = new Model(); // create an instance of Model()
var list = testins.getList(); // call its method
于 2012-09-27T07:21:53.153 回答