나는 웹 사이트를 개발하고 있습니다. 나는 자바 스크립트 코드를위한 좀 더 복잡한 프레임 워크를 만들 필요가 있다고 결론을 내렸다. 나는 자바 스크립트 라이브러리를 작성하는 방법의 다른 예제를 연구하기 시작했습니다. 방법을 적는 다소 혼란스러운 방법을 생각해 냈습니다. 나는 정말로 감사하는 사람에게 약간의 설명을 할 것이다. 그래서 여기js에서이 두 메서드 표현의 차이점은 무엇입니까
내가 일반적으로 방법을 아래에 다음과 같이 쓸 수있다 :
var ReportEnhancements =
function() {
this.Name = function()
{
alert('It is me!');
}
}
을 그리고 여기에 방법을 표현하는 또 다른 방법입니다 :
:ReportEnhancements.prototype.Tooltip = {
setByTitle :function(elementsToTooltip) {
alert('I am about to be tooltiped!')
}
}
나 퍼즐 두 가지가 있습니다를
- 언제 prototype 키워드를 사용해야합니까? 언제 메소드를 멤버 이름으로 선언해야합니까?
- setByTitle과 Name을 살펴보십시오. 두 메서드가 모두 선언되어 있고 두 메서드가 모두 public 임에도 불구하고 서로 다릅니다.
- this.Name = function()과 setByTitle : function()의 차이점은 무엇입니까? 메소드를 선언하는 두 가지 구문이 다른 이유는 무엇입니까?
편집 :
나는 차이를 이해하는 데 더 가까워지고,하지만 난 아직 완전히 파악되지 않은 하나의 큰 문제가 있어요. 이러한 두 가지 방법으로 메소드를 표현하는 이유는 클래스가 두 가지 다른 액세스 규칙을 가지고 있기 때문입니다. javascript 객체 리터럴에서 private 메서드를 선언하는 것처럼 보이지 않습니다. 반면에, 정규의 중첩 된 요소를 가지고 있다면 public 수정 자로 공개 할 수 없습니다. 액세스 한정자는 무엇입니까?
감사합니다.
[복제본에 '프로토 타입'과 'this'를 사용할 수 있습니까?] (http://stackoverflow.com/questions/310870/use-of-prototype-vs-this-in-javascript) –