Javascript,对象数组?

Javascript, Array of Objects?

我有点 JS 菜鸟,但我有很好的 .net 经验。

我在移动设备上工作 website/app,我从自定义网络服务中收集了一些类似于企业列表的数据。

在 .net 上,此时我会开始构建一个自定义 class,其中包含其他 "business-listing-classes" 的列表。然后,我将逐步浏览列表中的每个自定义对象,并在屏幕上使用它。

两个问题:

我知道 javascript 没有 classes persè,我知道您可以使用自定义函数作为 "class"。然后我只是实例化一堆不同版本的自定义函数,并将它们全部添加到一个数组中吗?

我几乎觉得我应该坚持使用它们的 json 格式?或者构建简单的数组? (根据我到目前为止从 Javascript 中学到的知识......)

我是不是设计过度了?我不确定正确的 javascript 方法是什么。

老实说,这取决于你想用这个做什么array

如果您要通过 XMLHTTPRequest 发送它,那么我建议您应该使用 JSON 格式。

var arr_of_objs = [{},{}]; //fill it up however you need it

如果此数组将由具有相同 attributes/properties 的对象组成,并且您打算使用此 客户端,则创建 "classes"最优。

var person = function(o){
  this.name = o.name || 'unknown';
  this.height = o.age || -1;
}
var arr_of_classes = [];
for(var i = 0; i < 10; i++){
  arr_of_classes.push(new person({
    name: 'name' + i,
    age: 10 + i
  }));
}

为什么到此为止?您甚至可以创建自定义 class 来处理实例。

    (function(){
      var person = function(o){
        this.name = o.name || 'unknown';
        this.height = o.age || -1;
      }
      var personHandler = function(){
        if(!(this instanceof personHandler)){
          return new personHandler();
        }
        this.persons = [];
      }
      personHandler.fn = personHandler.prototype = {
        load: function(){
          for(var i = 0; i < 10; i++){
            this.persons.push(new person({
              name: 'name' + i,
              age: 10 + i
            }));
          }
        },
        remove: function(index){
          //do stuff
        }

      }

   //export it
   window.personHandler = personHandler;

    })();

那你就简单了。

personHandler().load();