var Treasure = function(){
function locate(){
return this.x * this.y + 31337;
}
function Treasure(x, y){
this.x = x;
this.y = y;
}
Treasure.prototype.find = function find(){
return locate.call(this);
};
return Treasure;
}();
을 locate
은 생성자 및 프로토 타입 메서드에 대한 공유 개인 함수입니다. call
을 사용하면 메소드처럼 작동하고 this
을 사용할 수 있습니다.
이 개념의보다 완전한 구현은 인터페이스 개체와 구현 개체의 개념입니다. 메서드 대신에 몇 가지 무작위 함수 (위의 메서드와 비슷 함)를 사용하는 대신 실제로는 전체 클래스를 비공개로 만듭니다. 인터페이스를 외부에서 만들면 공용 셸 인터페이스와 개인 구현 객체라는 두 개의 객체가 만들어집니다. 이렇게하면 사용하기 쉽고 다르게 다른 API를 공개적으로 제공하는 인터페이스를 노출 할 수 있습니다. 또는 인터페이스 개체의 전체 그룹에 대해 단일 개인 구현 개체를 다시 사용할 수 있습니다.
이것은 실제로 DOM이 작동하도록 지정되는 방법입니다 (일반적으로 js에서는 구현되지 않음). 인터페이스 객체 (예 : 요소 및 노드 객체)는 실제로 해당 단어를 구현하는 기본 구현을 래핑해야합니다. 노출 된 객체는 속성 액세스 및 메서드 호출을 전달하는 셸 이상입니다.
Dom.js는 js로 만든 완전한 기능을 갖춘 DOM 구현입니다. 필자가 익숙한 흥미로운 기술은 완전히 자동화 된 공용 인터페이스 생성이었습니다. 이것이 IDL의 목적입니다. 공개 API는 문자 그대로 자동 생성되므로 실제로 구현되는 개인 구현 만 남습니다. 인간과상의하지 않고 이런 것을 만들 수 있다는 것을 실제로 의미하는 것 : https://github.com/Benvie/svgstuff/blob/master/lib/defs.js
+1 페이지 응용 프로그램 전자 서적 링크! 감사.. – renatoargh