이제 자바스크립트의 생성자에 대해 간단히 설명하겠습니다. 이제 그것을 여러분과 공유하고 모든 사람에게 참고 자료로 제공하겠습니다.
생성자, 생성자, 우리 모두는 이 이름에 익숙합니다. 생성자는 항상 현재 객체를 생성하는 생성자를 가리킵니다.
여기서 한 가지 주의할 점은 각 함수에는 프로토타입 속성이 있는데, 이 프로토타입의 생성자가 이 함수를 가리키는데, 이때 이 함수의 프로토타입을 수정하던 중 사고가 발생했습니다.
function Person(name,age){ this.name = name; this.age = age; } Person.prototype.getAge = function(){ return this.age; } Person.prototype.getName = function(){ return this.name; } var p = new Person("Nicholas",18); console.log(p.constructor); //Person(name, age) console.log(p.getAge()); //18 console.log(p.getName()); //Nicholas
와 같은 경우 그러나 다음과 같은 경우에는
function Person(name,age){ this.name = name; this.age = age; } Person.prototype = { getName:function(){ return this.name; }, getAge:function(){ return this.age; } } var p = new Person("Nicholas",18); console.log(p.constructor); //Object() console.log(p.getAge()); //18 console.log(p.getName()); //Nicholas
결과 생성자가 변경되었습니다.
그 이유는 프로토타입 자체도 객체이기 때문입니다. 위 코드는
Person.prototype = new Object({ getName:function(){ return this.name; }, getAge:function(){ return this.age; } });
와 동일합니다. 생성자는 항상 현재 객체를 생성하는 생성자를 가리키기 때문에 위 코드의 출력이 라는 것을 이해하는 것은 어렵지 않습니다. p.constructor는 객체입니다.
프로토타입을 수정한 후에도 생성자가 여전히 Person을 가리키도록 하려면 어떻게 해야 하나요? 간단합니다. Person.prototype.constructor에 직접 값을 할당하면 됩니다.
Person.prototype = { constructor:Person, getName:function(){ return this.name; }, getAge:function(){ return this.age; } }
위 내용은 제가 모든 사람을 위해 편집한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.
관련 기사:
사진 자르기 및 를 사용하여 저장하는 간단한 구현 자바스크립트
위 내용은 javascript의 constructor_basic 지식에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!