저는 JavaScript가 처음이며 오리 입력 개념과 다소 혼동합니다. 내가 알 수있는 한, 나는 그 개념을 이해했다. 하지만 그건 내 생각에 이상한 결과를 가져옵니다. 다음 예제로 설명 드리겠습니다.JavaScript의 속성 확인
저는 현재 jQuery Mobile을 사용하여 모바일 웹 앱을 작성 중입니다. 어느 시점에서 캔버스에 대한 vmousedown
이벤트를 캡처합니다. 터치의 압력에 관심이 있습니다. Touch.webkitForce
속성을 찾았습니다.
$('#canvas').live('vmousedown', function(e){
console.log(e.originalEvent.originalEvent.touches[0].webkitForce);
}
Chrome의 경우 Remote Debugging을 사용할 때 문제가 없습니다. 그러나 originalEvent
속성은 터치 이벤트가 아니라 클릭 이벤트이기 때문에 Opera Firefly에서 테스트 할 때 예외가 발생합니다.
그래서 내 권한이없는 개체의 속성에 액세스 할 때마다 존재 여부 및 유형을 확인해야합니까?
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);
}
나를 위해 누군가를 명확히 할 수 있습니까?
나는 대답을 좋아하지만, 문자열을 사용하지 않고 간단한'object.property' 표기법을 사용하고 있습니까? –
@ Angelo.Hannes 그런 다음 [at]와 같이 'try, catch'를 사용해야합니다. Prodigy answer : http://stackoverflow.com/a/13248964/887539 – andlrc