코드는 다음과 같습니다.
우선 JSON 객체에는 생성자 메소드가 있을 수 없으므로 간단한 "팩토리"를 만들고 생성을 담당하는 메소드를 구체적으로 작성해 보겠습니다.
그러나 이 방법을 통해 우리는 People을 프로토타입으로 사용할 수 없다는 것을 발견했습니다. Javascript 연구 노트 7 — —프로토타입 체인의 원리에 대한 이 기사에서는 이 프로세스에 대해 생각해 보겠습니다.
var p=new People();==>p.__proto__=People.prototype. 따라서 p.SayHello()를 실행하면 People.prototype으로 이동하여 검색하지만 아무것도 찾을 수 없습니다.
People.prototype.SayHello=function(){}을 사용하면 이 문제를 해결할 수 있습니다. 하지만 우리는 함수만이 프로토타입을 가질 수 있다는 것을 알고 있습니다.
그럼 앞선 파생식을 생각해보면 p.SayHello()는 어떻게 만들 수 있을까요? p.__proto__=People이 가능하다면 좋을 것 같습니다. 그런 다음 다음과 같은 방법을 생각해냅니다.
new에서는 특정 객체의 __proto__가 특정 함수의 프로토타입과만 같을 수 있으므로 함수 X를 설정하고 p.__proto__=X.prototype을 설정합니다. , 그런 다음 X.prototype=People을 설정합니다. 관계는 다음과 같습니다.
코드는 다음과 같습니다. var Factory = { CreatePeople : function (className,name,age) {
코드는 다음과 같습니다.