2012-12-31 2 views
1

내가 이와 같은 클래스를 가지고 있다고 가정 해 봅시다.개인 및 특권 메소드의 차이점

function kevin(name){ 
    this.name = name; 
    this.methodKevin = function(){ 
     console.log(this.name); 
    }; 
    var kevin = function(){ 
     console.log(this.name); 
    } 
    function newKevin(){ 
     console.log(this.name); 
    } 
} 
  1. JavaScript에서 그들 사이의 차이는 무엇인가?
  2. 내 수업이 완벽합니까, 내 생성자 안에 함수 표현식을 사용할 수 있습니까?
+0

"권한 방법"이란 이름을 사용 했습니까? Brillant라고 생각합니다. –

+0

@MattiVirkkunen : 오타 ... 어쨌든 ... 특권이 부여 된 방법. – Kevin

+0

그 중 하나도 들어 본 적이 처음입니다. –

답변

2

어떻게 호출되는지에 따라 달라지며, kevin이라는 두 가지 함수가 있기 때문에 이야기하는 것이 혼란 스럽습니다.

  1. methodKevin는이 최상위 kevin 함수 객체에 바인딩 할 whichcase에 new kevin에 의해 호출하지 않는 한 윈도우 객체에 바인딩됩니다. this.namenew으로 인스턴스화 된 함수에 의해 호출 된 경우에만 예상대로 작동합니다.
  2. var kevin은 기능 범위가 부모 장치 kevin이므로 해당 기능 외부에서 절대로 호출 할 수 없습니다. 그 의미에서 사적입니다. this.name가 작동하지만 name 만 있으면 충분합니다.
  3. 와 동일 2
관련 문제