생성자 속성은 이 객체를 생성한 배열 함수에 대한 참조를 반환합니다. 이 기사에서는 JavaScript의 생성자를 소개합니다. 필요한 친구는 이를 참조할 수 있습니다.
정의 및 사용법
생성자 속성은 이 객체를 생성한 배열 함수에 대한 참조를 반환합니다.
구문
object.constructor
생성자, 생성자, 우리 모두 이 이름에 익숙합니다. 생성자는 항상 포인터입니다. 현재 객체를 생성한 생성자에 연결됩니다.
여기서 한 가지 주목할 점은 각 함수에는 프로토타입 속성이 있는데, 이 프로토타입의 생성자가 이 함수를 가리키는데, 이때 이 함수의 프로토타입을 수정하던 중 사고가 발생했습니다. . 예를 들어
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의 출력이 Object라는 것을 이해하는 것은 어렵지 않습니다.
프로토타입을 수정한 후에도 생성자가 여전히 Person을 가리키도록 하려면 어떻게 해야 하나요? 간단합니다. Person.prototype.constructor에 직접 값을 할당하면 됩니다.
Person.prototype = { constructor:Person, getName:function(){ return this.name; }, getAge:function(){ return this.age; } }
위는 편집기에서 소개한 JavaScript의 생성자입니다. 더 많은 관련 튜토리얼을 보려면 을 방문하세요. 자바스크립트 동영상 튜토리얼!