Raphael documentationから、独自のメソッドをクラスRaphael.el
に追加する方法です。Raphael.element
一般に、このクラスの目的は、SVG 要素の操作を容易にすることです。
this.class
コード例の は、前の文で使用されているように、プログラミングの意味でクラスという単語とは何の関係もありません。(私が見る限り) 標準の Raphael フレームワークの一部でもありません。class
また、HTML および SVG 要素が持つことができる属性を参照するものでもなく、通常、element.className
またはを使用して JavaScript でアクセスされますelement.setAttribute('class', '...')
。
this
は要素ラッパー オブジェクト ( のインスタンスRaphael.element
) を参照しており、このメソッドを作成した人は単にその名前を使用class
して要素ラッパーに追加情報を格納したようです。(コメントで指摘されているように、これはclass
javascript の予約済みキーワードであるため、悪い考えかもしれませんが、とにかく機能します。)
具体的には、この例では、Raphael またはコードの他のどこにも値が割り当てられていないため、this.class
最初はです。句では、 にundefined
評価され、次の行では、関数 for に値が渡されていないため、「デフォルト」に評価されます。したがって、値「デフォルト」が割り当てられます。その後、形状を右クリックしてUse custom styleを選択すると、その形状の が「カスタム」になります。if
!undefined
true
style
style ? style : 'default'
this.class
class
JavaScript を使用すると、どこにも初期化されていないオブジェクトのプロパティを簡単に参照したり、値を代入したりできることに注意してください。エラーはスローされませんが、undefined
値が割り当てられていない場合は単純に戻ります。
何が起こっているかをブラウザコンソールに記録する行を挿入することで、これらすべてを見ることができます:
console.log('style', state, style, aniOptions, this, 'class:', this.class);
次に、ブラウザーの開発者ツールを使用して出力 ( JSFiddle ) を確認します。