이번에는 js 프로토타입 객체 사용 단계에 대해 자세히 설명하고, js 프로토타입 객체 사용 시 주의 사항 은 무엇인지 살펴보겠습니다.
간단한 constructor+프로토타입 개체 작은 프로그램
function CreateObj( uName, uAge ) { this.userName = uName; this.userAge = uAge; } CreateObj.prototype.showUserName = function () { return this.userName; } CreateObj.prototype.showUserAge = function () { return this.userAge; }
부터 시작해 보겠습니다. 이 프로그램에는 아무런 문제가 없지만 매우 중복됩니다. 메서드가 확장될 때마다 프로토타입 개체를 작성해야 합니다. 프로토타입 개체 프로토타입을 리터럴 개체로 처리할 수 있으며 모든 메서드는 리터럴 개체에서 확장됩니다. 동일한 효과를 얻을 수 있습니다:
CreateObj.prototype = { showUserAge : function(){ return this.userAge; }, showUserName : function(){ return this.userName; }, } var obj1 = new CreateObj( 'ghostwu', 22 ); var obj2 = new CreateObj( '卫庄', 24 ); console.log( obj1.showUserName(), obj1.showUserAge() ); //ghostwu 22 console.log( obj2.showUserName(), obj2.showUserAge() ); //卫庄 24
function CreateObj( uName, uAge ) { this.userName = uName; this.userAge = uAge; } CreateObj.prototype.showUserName = function () { return this.userName; } CreateObj.prototype.showUserAge = function () { return this.userAge; } console.log( CreateObj.prototype.constructor === CreateObj ); //true
CreateObj.prototype = { showUserAge : function(){ return this.userAge; }, showUserName : function(){ return this.userName; }, } console.log( CreateObj.prototype.constructor === CreateObj ); //false console.log( CreateObj.prototype.constructor === Object ); //true
rreee
정상적으로 호출 가능하지만, 프로토타입 객체가 오버라이드되면 호출할 수 없습니다function CreateObj( uName, uAge ) { this.userName = uName; this.userAge = uAge; } var obj1 = new CreateObj( 'ghostwu', 22 ); CreateObj.prototype.showUserName = function(){ return this.userName; } console.log( obj1.showUserName() ); //ghostwu
proto
은 다시 작성된 프로토타입 객체를 가리키지 않으므로 프로토타입에 참조 유형이 있는 경우 다른 문제를 호출할 수 없습니다. 객체(프로토타입)이므로 여러 인스턴스가 프로토타입 객체를 공유하므로 주의하세요. 하나의 인스턴스가 참조 유형의 값을 변경하는 한 다른 모든 인스턴스는 변경된 결과를 받게 됩니다.rreee 프로토타입 객체의 공유 특성은 배열 중복 제거와 같은 일부 내장 객체에 대한 일부 메소드를 쉽게 확장할 수 있습니다.
function CreateObj( uName, uAge ) { this.userName = uName; this.userAge = uAge; } var obj1 = new CreateObj( 'ghostwu', 22 ); CreateObj.prototype = { showUserName : function(){ return this.userName; } } console.log( obj1.showUserName() ); //报错
js에서 요소 스타일을 설정하는 단계에 대한 자세한 설명
위 내용은 js 프로토타입 객체 사용 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!