2016-04-24 25 views
2

なぜこの問題は表示されませんか?誰かが私を助けることができますか? 私はそれが非常に愚かな質問ですけど..しかし、私は実行するために...uncaught ReferenceError xxxが定義されていません

をそれを見ることはありません。

..私は聞いてすみません

ready! 
VM1507:1 Uncaught ReferenceError: User is not defined(…) 

var xxx = new User()と私はいつもこれを取得

$(function() { 
    console.log("ready!"); 

    function User() { 
     this.badgeVervalDatum = null; 
     this.bijNaam = null; 
     this.contactVia = null; 
     this.email = null; 
     this.familieNaam = null; 
     this.gsm = null; 
     this.id = null; 
     this.middleNaam = null; 
     this.postcode = null; 
     this.rkNummer = null; 
     this.sanBekw = null; 
     this.straat = null; 
     this.voorNaam = null; 
     this.volledigNaam = null; 
     this.woonplaats = null; 
     this.timeCreated = 0; 
     this.timeUpdate = 0; 
     this.timeLastLogin = 0; 
    } 

    User.prototype = { 
     constructor: User, 
     addEmail: function(email) { 
      this.email = email; 
      return true; 
     } 
    } 
}); 
+1

'User()'関数は* ready *ハンドラの中で定義されているので、そのコンテキストからのみ呼び出すことができます。それは世界的に利用可能ではありません。関数を*呼び出す*のはどこですか? – Pointy

+1

'User'は、呼び出される無名関数の中でのみ定義されることに注意してください。' $(function(){function User(){....}});新しいユーザー()は動作しません –

+0

yyess !!!!私はとても愚かです! –

答えて

2

これはの問題である必要があります。

変数を関数内に宣言すると、その関数の外側には変数が表示されません。

2

多分あなたは範囲に問題があります。 $(function() { ... })にコンストラクタとプロトタイプを定義しましたが、このブロックの外側には表示されません。

$(function() { 

    function User() { 
     this.badgeVervalDatum = null; 
     this.bijNaam = null; 
     this.contactVia = null; 
     this.email = null; 
     this.familieNaam = null; 
     this.gsm = null; 
     this.id = null; 
     this.middleNaam = null; 
     this.postcode = null; 
     this.rkNummer = null; 
     this.sanBekw = null; 
     this.straat = null; 
     this.voorNaam = null; 
     this.volledigNaam = null; 
     this.woonplaats = null; 
     this.timeCreated = 0; 
     this.timeUpdate = 0; 
     this.timeLastLogin = 0; 
    } 

    User.prototype = { 
     constructor: User, 
     addEmail: function(email) { 
      this.email = email; 
      return true; 
     } 
    }  

    var user = new User(); // this is ok 
}); 

var user = new User(); // this will not work 
0

Userクラスは、匿名関数内で定義されているため、アクセスできません。 ユーザーをグローバルスコープで表示させる必要があります。あなたは右の関数定義の後に以下の行を追加することができますことを行うには :

window['User'] = User; 
0

あなたはグローバルスコープを介してユーザにアクセスしているが、それは$(function() {}に宣言しています。
Userを取得するには、スコープ内で変数を宣言するだけです。 Read more about js scopes。例えば

var User; 
$(function() { 
    User = function() {/* ... */}; 
} 
new User();` 

または$(function(){})範囲にUserを宣言する。

関連する問題