2013-03-22 5 views
1
//1 
var object1 = function(o){ 

    // some code 

}; 

//2 
var object2 = new object1({ 

    method1: //some code 
    method2: //some code 
    method3: //some code 

}); 

//3 


document.onkeydown=function(e){  
    var eventKey = e.keyCode || e.charCode; 
    var sel = Coverflow.selected; 
    if(eventKey == 39 || eventKey == 37) { 
     if(eventKey == 39) sel++; 
     else if(eventKey == 37) sel--; 
     sel = sel.limit(0, Coverflow.getListLength() - 1); 
     Coverflow.select(sel); 
    } 
} 

아니라, 내 질문은 다음과 같습니다이 자바 스크립트 코드는 어떻게 작동합니까?

  1. 무슨 일이 오브젝트 1이 생성 될 때 발생의 = 함수() 부분은 무엇을 의미합니까?
  2. 은 object1을 가리키는 object2입니다. 상속을 만드는 임무는 무엇입니까?
  3. 가능한 한 누군가 document.onkeydown()에서 무슨 일이 일어 났는지 설명 할 수 있습니다. 코드는 커버 플로우 효과를위한 것입니다. 이 함수는 프로그램의 다른 곳에서는 호출되지 않았으며 어떻게 실행됩니까?

답변

2

무엇 오브젝트 1이 생성 될 때 발생의 = 함수() 부분은 무엇을 의미합니까 감사?

JavaScript의 함수는 1 급 개체입니다. 그것들은 다른 함수처럼 전달되고 할당 될 수 있습니다.

object2가 object1을 (를) 가리키고 있습니까? 그 과제는 상속을 창출합니까?

object2는 object1의 인스턴스입니다. 이것은 object1을 클래스 정의로 취급하는 것과 같습니다.

document.onkeydown은 어떻게 실행됩니까?

키를 누르면 이벤트가 발생합니다. 브라우저가 제공하는 문서 객체의 코드는 해당 이벤트를 수신하고 해당 함수를 호출합니다 (있는 경우).

MDN has some documentation on how events work 자세한 내용은

+0

var obj = {method1 :과 같은 객체를 만들 때 1과 2 구문을 사용하여 객체를 만드는 것의 차이점은 무엇입니까? ..} – user2132383

+0

object1은 일반 객체가 아닌 함수입니다. – Quentin

+0

object2는 object1의 속성뿐만 아니라 함수가 새 객체에 적용하는 모든 것을 상속합니다. – Quentin

0

1 - 런타임 정의 object1라는 그 함수보다 here

- 2 (함수 선언에서 "O"로 참조)로 전달되는 파라미터 함수의 새로운 인스턴스

3 - 함수는 onkeydown 이벤트에 바인딩되어 있으므로 문서에서 키를 누를 때마다 실행됩니다. here

+0

엄밀히 말하면 2는 "전달 된 매개 변수 * –

+0

@ Beetroot-Beetroot 당신은 물론 맞습니다. – Gatekeeper

0

JavaScript에는 클래스 개념이 없지만 유사한 동작이 가능합니다. 그래서 인스턴스화 된 클래스가 될 수있는 객체/함수를 호출 할 것입니다.

  1. object1

    는 생성자에 의해 정의 된 클래스의 일종, function(){...} 부분은 해당 클래스의 생성자입니다.
  2. object2object1 클래스의 인스턴스에 대한 참조이며, 그 자체가 하나의 매개 변수 인 object1 클래스의 생성자를 호출하여 인스턴스화되었습니다.
  3. onkeydownkeydown 이벤트 처리기에 대한 DOM 개체의 예약 된 속성입니다.이 이벤트가 브라우저에 의해 해고되면 관련 함수 (해당되는 경우)에 의해 처리됩니다.
관련 문제