동료의 논리를 접했고 변경 사항을 제출하기 전에 결과에 대해 명확하게 알고 싶습니다. 기본적으로,이 클래스가 있습니다개체를 인스턴스화하고 변수에 저장하지 않음
return {
propA: new MyClass().propA,
propB: new MyClass().propB
};
대안 방법은 새를 선언 할 것 : 다른 파일에서
var MyClass = function(){};
MyClass.prototype = {...}
를,이 같은 작은 선물을 그 클래스를 필요로하고가는 모듈을 정의하고 MyClass 객체를 다음과 같이 사용하십시오.
var myObject = new MyClass();
return {
propA: myObject.propA,
propB: myObject.propB
};
각각의 장점과 단점은 무엇입니까?
두 가지가 있습니다. * 같은 * 객체의 propA와 propB 속성을 원하거나 다른가? – dfsq
두 프로토 타입 속성이므로 객체간에 공유됩니다. –
Andre : 프로토 타입에 선언 된 멤버/속성이 모든 인스턴스에 대해 동일 할 필요는 없습니다. 특정 인스턴스에 대해 해당 멤버를 숨길 수 있으며 해당 인스턴스에 대해서는 다를 수 있습니다. 그림자가 여기에 설명되어 있습니다 : http://stackoverflow.com/a/16063711/1641941까지 프로토 타입 값을 가지고 보장; 데이비드의 대답은 당신이 사용해야하는 것입니다. – HMR