정의 및 사용법
생성자 속성은이 개체를 만든 배열 함수에 대한 참조를 반환합니다.
문법
대상
생성자, 생성자, 우리는 모두이 이름에 익숙합니다. 생성자는 항상 현재 객체를 생성하는 생성자를 가리 킵니다.
여기서 주목해야 할 것은 각 함수에는 프로토 타입 속성이 있으며이 프로토 타입의 생성자는이 기능을 가리 킵니다. 이 시점 에서이 기능의 프로토 타입을 수정하면 사고가 발생했습니다. 좋다
함수 개인 (이름, 나이) {this.name = name; this.ge = age = age;} person.prototyp.getage = function () {return this.age;} person.prototype.getname = function () {return this.name;} var p = new Person ( "Nicholas", 18); console.log (p.cructor); // 사람 (이름, 연령) console.log (p.getage ()); //18console.log (p.getName ()); // 니콜라스그러나 그렇다면 :
기능인 (이름, Age) {this.name = name; this. // object () console.log (p.getage ()); //18console.log (p.getName ()); // 니콜라스결과적으로 생성자가 변경되었습니다.
그 이유는 프로토 타입 자체가 객체이고 위의 코드는
person.prototype = new Object ({getName : function () {return this.name;}, getage : function () {return this.age;}});생성자는 항상 현재 객체를 생성하는 생성자를 가리키기 때문에 위의 코드가 객체를 출력한다는 것을 이해하기가 어렵지 않습니다.
프로토 타입을 수정 한 후 생성자가 여전히 사람을 가리키기를 원한다면 어떻게해야합니까? 단순하고 person.prototype.constructor에 값을 할당합니다.
person.prototype = {생성자 : person, getname : function () {return this.name;}, getage : function () {return this.age;}}위는 편집자가 귀하에게 소개 한 JavaScript의 생성자입니다. 나는 그것이 모두에게 도움이되기를 바랍니다!