내가 생성자에서 다른 객체를 인스턴스화하고 그 자체에 대한 참조를 전달하는 클래스를 정의하기 위해 노력하고있어 현재 개체에 대한 참조 :생성자
var Child = function(m) {
var mother = m;
return {
mother: mother
}
}
var Mother = function() {
var children = makeChildren();
return {
children: children
}
function makeChildren() {
var children = [];
for (var i = 0; i < 10; i++) {
var c = new Child(this); // <--- 'this' is an empty object here
children.push(c)
}
return children;
}
}
이 작동하지 않습니다, 그리고 아동 인스턴스가 mother
속성에 빈 객체로 끝납니다. 이 작업을 수행하는 적절한 방법은 무엇입니까?
'this.children = makeChildren()'을 설정했습니다. 이것은 생성자에서 객체를 반환하는 것보다 일반적으로 더 좋은 패턴으로 간주됩니까? – Andre
'new' 문법을 사용하는 생성자를 수행 할 때'this'를 사용할 수 있습니다 (그리고 프로토 타입 등에서 상속받습니다). 자체 상수를 반환하는 함수를 가질 계획이라면 상속이나 프로토 타입 메소드에 액세스 할 필요가 없으므로 일반 비 생성자 함수로 만들 수 있습니다. (그리고 이름을 대문자로 만들지 말 것. '새로운'연산자가 필요한 것들을 위해 협약을 예약한다) – hugomg