2017-05-09 23 views
2

HTML5キャンバスのパーティクルシステムの初期段階で直ちに問題が発生します。 Particleクラスオブジェクトのプロパティを取得しようとすると、undefinedが返され、その理由がわかりません!Javascriptでオブジェクトのプロパティが 'undefined'を返す

class Particle { 
    contructor(context, width, height) { 
    this.x = width/2; 
    this.y = height/2; 
    this.radius = Math.random() * 5 + 5; 
    } 
}; 

var App = { 
    canvas: document.getElementById('canvas'), 
    ctx: canvas.getContext('2d'), 
    initialize: function() { 
    this.canvas.width = window.innerWidth; 
    this.canvas.height = window.innerHeight; 
    }, 
    draw: function() { 
    var P = new Particle(this.ctx, this.canvas.width, this.canvas.height); 

    alert(P.x); // Why does this return undefined? 

    this.ctx.beginPath(); 
    this.ctx.arc(P.x,P.y,P.radius,0,2*Math.PI); 
    this.ctx.stroke() 
    } 
}; 

App.initialize(); 
App.draw(); 
+0

私はスペルミスを言っている赤い下線を見るまで、このすべてを理解しようとしていました。それはコンストラクタではないコンストラクタです – Tremmillicious

答えて

4

私はあなたは自分のParticleクラスのコンストラクタで愚かなタイプミスがあると思う:それはconstructorをお読みください。例えば:

class Particle { 
    constructor(context, width, height) { 
     ... 
    } 
}; 

あなたはが実際にあなたP変数を初期化していなかったので、すべてのプロパティは、デザインによってundefinedです。

+0

ありがとう.. * facepalm * – SkiZer0

関連する問題