0
자바 스크립트에서 정적 멤버를 에뮬레이트하려고합니다. 지금자바 스크립트의 정적 멤버
// option A for static members:
// constructor...
function Person(name) {
this.firstName=name;
}
Person.count=0; // like a static member...
var p=new Person("Dan");
Person.count++;
alert(Person.count); // 1;
이 하나 :
이 코드 고려 그래서// option B for static members:
// constructor..
function Person(name) {
this.firstName=name;
Person.prototype.count++;
}
Person.prototype.count=0; // like a static member...
var p=new Person("Dan");
alert(Person.prototype.count); // 1;
// ...
을, 사실 그 둘 사이의 주요 차이점은,라고 말할 것입니다 두 번째 예에서는 당신이 할 수있는 그 (프로토 타입 decleration 때문에) constructor의 정적 멤버를 참조하십시오. 첫 번째 예제에서는 그렇지 않습니까?
덕분에, 다른 통해 하나 개의 방법이 바람직합니까? –
@yoavbarnea - 옵션 A가 더 좋을 것 같습니다. –
@yoavbarnea 옵션 B는 실제로 정적 멤버가 아니며 인스턴스 멤버입니다. JS에서는 프로토 타입에서 인스턴스 멤버에 액세스하여 인스턴스 멤버를 호출 할 수 있습니다. –