2012-01-27 6 views
1

値がAndroidアプリからJavaScriptプログラムに渡されたときに新しいクラスインスタンスを作成する方法を理解しようとしています。私はJSがクラスを使用していないことを知っていますが、同様の方法で関数を使用する方法があります。JavaScriptで呼び出されたときに新しい 'クラス'インスタンスを作成する

ユーザーがAndroidアプリのボタンを押すと、ID(およびユーザー情報)を格納しているデータベースにランダムに生成されたIDを送信してから、JSプログラムでIDを作成し、そのIDの新しいインスタンスを作成します。複数のユーザーが同時にアクセスしますので、ユーザーがボタンを押すたびに新しいインスタンスを作成する必要があります。 ID、緯度、経度、時刻を別々のデータベースに送り、毎秒その場所が更新されて保存されます。

たとえば、 'user1'がボタンを押すと、id(user1)がDB_1に送信され、ID、緯度、経度、およびタイムスタンプがDB_2に送信されます。 JSは新しいユーザーに警告され、user1のインスタンスを作成し、IDを変数として使用して毎秒座標のDB_2を検索します。このように、複数のユーザーがいる場合、各クラスはそのユーザーに関係する座標のみをDB_2で検索します。ウェブ上のGoogleマップで複数のユーザーを同時に(リアルタイムで)追跡できる必要があるため、これを行う必要があります。あなたは何か提案があれば教えてください!

おかげ

+0

"JSはクラスを使用していません"。あなたの知識をよりよく更新してください。ちょうどGoogleの "Javascriptでクラスを作成"と全く新しい世界があなた自身を開きます。 – OcuS

+0

ボタンを押すと、各ユーザーのクラスを作成する方法について説明できますか? – mkyong

+0

彼らはクラスではないことは事実です。しかしプロトタイプの継承は、同じことをするための別のツールを提供します。http://howtonode.org/prototypical-inheritance –

答えて

1

あなたがしたいすべてがそれ自身のプライベート変数とJavaScriptオブジェクトは、その後、あなたはその後、プロトタイプの機能を使用することができます

function User(id) { 
this.id = id; 
}; 

ような何かをしようと作るの場合。

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

ここでは、プライベート変数idとその変数のゲッターを持つオブジェクトがあります。

あなたはこの

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

のようにオブジェクトのインスタンスを作成することができ、それは安全で組織的なものを保持しますので、私は、プロトタイプパターンを使用したいが、あなたは「この」ロットを使用して終了します。基本的に同じことを達成する他のパターンがありますが、使用する方が好きかもしれませんが、今のいずれの名前であれ考えることはできません。

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」をどこかに残している可能性があります。オブジェクトの一部であるプロトタイプ関数内のすべての変数には、 "this"が必要です。接頭辞。

あなたが探していたもののラインに沿ったものであることを願っています。

関連する問題