在JavaScript中调用时创建新的“类”实例

时间:2012-01-27 07:38:30

标签: javascript android class maps

我正在尝试找出一种在将值从Android应用程序传递到JavaScript程序时创建新类实例的方法。我知道JS不使用类,但有一些方法可以以类似的方式使用函数。

当用户按下Android应用程序中的按钮时,我想将随机生成的ID(我创建的)发送到存储ID(和用户信息)的数据库,然后让JS程序提取ID并为该ID创建一个新实例。将有多个用户同时访问它,因此每次用户按下按钮时我都需要创建一个新实例。它还将ID,纬度,经度和时间发送到单独的数据库,其中位置将每秒更新和存储。

例如,如果'user1'按下按钮,则id(user1)将被发送到DB_1,ID,纬度,经度和时间戳将被发送到DB_2。 JS将收到新用户的警报并为user1创建一个实例,然后使用该ID作为变量来每秒搜索DB_2的坐标。这样,如果有多个用户,则每个类仅搜索DB_2以查找与该用户相关的坐标。我需要这样做,因为我必须能够使用网络上的Google地图同时(并实时)跟踪多个用户。如果您有任何建议,请告诉我们!

由于

1 个答案:

答案 0 :(得分:1)

如果您只想使用自己的私有变量创建一个JavaScript对象,那么尝试使用

之类的东西
function User(id) {
this.id = id;
};

然后您可以使用原型函数。

User.prototype.getId = function() {
return this.Id;
};

现在你有一个私有变量id的对象和该变量的getter。

您可以像这样创建对象的实例

var user1 = new User(id1);
var user2 = new User(id2);
var user1Id = user1.getId();
var user2Id = user2.getId();

我喜欢使用原型模式,因为它可以保证安全和有条理,但最终会使用“this”。还有其他模式可以实现基本相同的东西,您可能更愿意使用它,但我现在无法想到它们中的任何一个的名称。

在构造中使用

function User(id) {
this.id = id;
};
User.prototype.getId = function() {
return this.Id;
};

有点类似于在Java中执行此操作,除非没有类型安全。

public class User{
    private int id;

    public User(int id){
         this.id = id;
    }

    public int getUserId(){
        return this.id;
    }
}

当然,编译的Java和解释的JavaScript的内部工作方式之间存在很大差异,但上述方法会给出类似的OO效果。

如果您使用此方法并最终出现一些错误,那么您很可能在某处遗漏了“此”。原型函数中作为对象一部分的每个变量都必须具有“this”。前缀。

希望这与你所寻找的东西一致。