>  기사  >  웹 프론트엔드  >  JavaScript_javascript 기술로 객체 생성 및 상속 예시 해석

JavaScript_javascript 기술로 객체 생성 및 상속 예시 해석

WBOY
WBOY원래의
2016-05-16 17:00:25954검색

객체 생성:

함수 객체가 생성되면 Function 생성자에 의해 생성된 함수 객체는 다음과 유사한 코드를 실행합니다.

코드 복사 코드는 다음과 같습니다.

this.prototype={constructor:this};

함수 F가
F를 구성한다고 가정합니다. 새 메소드를 사용하는 객체 객체의 생성자가 이 F.prototype.constructor로 설정된 경우
함수가 객체를 생성하기 전에 함수의 프로토타입을 수정하면 생성된 객체의 생성자 속성에 영향을 미칩니다

예:
코드 복사 코드는 다음과 같습니다.

function F(){} ;
F.prototype={constructor: '1111'};
var o=new F();//o.constructor==='1111' true

원리 상속:

JavaScript의 상속 프로토타입 체인을 사용하는 메커니즘입니다. 각 함수 인스턴스는 생성자의 프로토타입 속성에 정의된 데이터를 공유합니다. 한 클래스가 다른 클래스를 상속하려면 상위 함수 인스턴스가 있어야 합니다. 하위 함수의 프로토타입 속성에 할당됩니다. 그리고 새로운 인스턴스 객체가 생성될 때마다 객체의 전용 속성인 __proto__가 생성자의 프로토타입에 자동으로 연결됩니다.

instanceof는 인스턴스 객체의 프라이빗 프로토타입 속성 체인을 조회하여 지정된 객체의 인스턴스인지 확인하는 것입니다.

구체적인 예:
코드 복사 코드는 다음과 같습니다:

//instanceof Implements
function Myinstanceof(obj,type)
{
var proto=obj.__proto__;
while(proto)
{
if(proto ===type.prototype)break;
proto=proto.__proto__; >return proto!=null
}


function View(){}
function TreeView(){}
TreeView.prototype=new View();//TreeView .prototype.__proto__=TreeView.prototype 자동 완성
TreeView.prototype.constructor=TreeView;//수정 생성자
var view=new TreeView();//view.__proto__=TreeView.prototype 자동 완성
Alert(view instanceof View); //true view.__proto__.__proto__가 발견되면
alert(view instanceof TreeView); //true가 발견됩니다. view.__proto__가 발견되면
alert(Myinstanceof(view) ,View)); //참
Alert(Myinstanceof(view,TreeView)) //참

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.