私はJavaScriptを初めて使用し、ダックタイピングの概念と少し混乱しています。私の知る限り、私はその概念を理解しました。しかし、それは私の考えに奇妙な結果をもたらします。次の例で説明します。
私は現在、jQueryMobileを使用してモバイルWebアプリに取り組んでいます。ある時点vmousedown
で、キャンバスのイベントをキャプチャします。タッチのプレッシャーに興味があります。物件を見つけましたTouch.webkitForce
。
$('#canvas').live('vmousedown', function(e){
console.log(e.originalEvent.originalEvent.touches[0].webkitForce);
}
これは、Chromeのリモートデバッグを使用する場合に正常に機能します。originalEvent
ただし、プロパティはタッチイベントではなく、クリックイベントであるため、OperaFireflyでテストするときに例外をスローします。
したがって、自分の権限下にないオブジェクトのプロパティにアクセスするたびに、存在とタイプを確認する必要がありますか?
if( e.originalEvent &&
e.originalEvent.originalEvent &&
e.originalEvent.originalEvent.touches &&
e.originalEvent.originalEvent.touches[0] &&
e.originalEvent.originalEvent.touches[0].webkitForce) {
console.log(e.originalEvent.originalEvent.touches[0].webkitForce);
}
誰かが私のためにそれを明確にしてくれませんか?