프로토 타입 상속에 대해 머리를 감싸려고합니다. MDN 문서를 읽었지만 훨씬 더 똑똑하지는 않습니다. 지금까지 다음 코드를 가지고 있습니다 ...Javascript Inheritance Woes
var Vertex = function(id, options){
this.options = options || {};
this.id = id;
this.position = new THREE.Vector3(0, 0, 0);
this.velocity = new THREE.Vector3(0, 0, 0);
this.acceleration = new THREE.Vector3(0, 0, 0);
this.toString = function(){
return this.id.toString();
};
this.edge_count = 0;
this.edges = {};
if(!this.options.hasOwnProperty('label')){
this.options.label = {
text: '',
direction: 'x',
distance: '10'
};
};
};
... 생성자가 추가 한 모든 속성을 "상속"하고자합니다. Vertex에는 메쉬를 정점의 object
으로 추가하는 페인트 방법이 있습니다. 그래서 나는 내가 단순히 정점의 개체 속성에 카메라를 할당 생성자, 것을 제외하고 (정점 교체 하락으로 CameraVertex을 사용할 수있을 거라고 ... ...
var CameraVertex = function(id, camera){
Vertex.call(this);
this.object = camera;
this.id = id;
};
CameraVertex.prototype = Object.create(Vertex.prototype);
CameraVertex.prototype.constructor = CameraVertex;
을 썼다 일반적으로.
를 메쉬 또는 그룹 보유하지만 어떤 이유로, 나는 CameraVertex하고 정기적 정점 사이의 가장자리를 만들 때 더 source.object
없을 것 같습니다.
완전한 예를 클릭 한 후 Social Cartography에서 찾을 수 있습니다 google로 로그인하고 마우스로 정점을 선택하십시오.
'CameraVertex'는'Vertex' 생성자에 의해 정의 된 모든 속성을 "상속받습니다". 그래서이 라인은 의도적으로 존재합니다. 결국 저는 결과물 인 CameraVertex를'object' 속성과'position'뿐만 아니라'velocity'와'acceleration'로 완성 된 다른 Vertex와 똑같이 취급하고 싶습니다. –
프로토 타입 상속 _by definition_은 생성자에 추가 된 속성을 상속하는 데 사용할 수 없습니다. 이러한 속성은 _instance 속성 _이며 프로토 타입의 일부가 아니기 때문입니다. – Alnitak
BaseClass.call (this)을 호출하면 그 효과 만 얻을 수 있습니다. –