2016-09-27 8 views
1

私は何かなどを行うオンライン見てきた例のほとんど...'new'キーワードの有無にかかわらずMongooseスキーマを作成しますか?

var UserSchema = new mongoose.Schema({ 
    name: String, 
    age: String 
}); 

はしかし、最近私は本が上記の操作を行うた...しかし、新しいキーワードなし。

var UserSchema = mongoose.Schema({ 
    name: String, 
    age: String 
}); 

私は今混乱しています。スキーマの作成にnewキーワードを使用するかどうか、どちらの場合もどうなりますか?

答えて

3

両方とも有効で、Mongoose.Schemaクラスの新しいインスタンスを返します。これは、両方がまったく同じことを意味します。このlineは、既にスキーマクラスのインスタンスを持っているかどうかをチェックし、存在しない場合はそれを返します。

あなたが呼び出す場合

var schema = mongoose.Schema({}) 

マングースがあなたのために1を初期化しながら、あなたはこれで、インスタンスを自分で初期化

var schema = new mongoose.Schema({}) 

を呼び出す場合、要約すると:

function Schema(obj, options) { 
    if (!(this instanceof Schema)) { 
    return new Schema(obj, options); 
    } 
    ... 
+0

面白いです、ありがとうございます... – Grateful

+0

@Gratefulあなたはすべてを理解していますか?私はあなたが私が何を意味したのかを確かめたいと思います。 PHPのような他のオブジェクト指向言語で作業しましたか?私が求めているのは、 'mongoose.Schema'が' Class'で、 'new Class()'を使ってインスタンスを初期化しなければならないからです。 – Svenskunganka

+0

私はあなたの答えを理解しています。ありがとうございました。 – Grateful

関連する問題