>  기사  >  웹 프론트엔드  >  JavaScript 객체 생성 및 상속 원칙 예제 해부학_기본 지식

JavaScript 객체 생성 및 상속 원칙 예제 해부학_기본 지식

WBOY
WBOY원래의
2016-05-16 17:41:15989검색
객체 생성:
함수 객체가 생성되면 함수 생성자에 의해 생성된 함수 객체는 다음과 유사한 코드를 실행합니다.
복사 코드 코드는 다음과 같습니다.

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 인스턴스 보기) ; //true는 view.__proto__를 찾습니다.
alert(view instanceof TreeView)는 __proto__가 발견되면 발견됩니다. //view.__proto__가 발견되면 true가 발견됩니다.
alert(Myinstanceof(view,View)); /true
alert(Myinstanceof(view, TreeView)); //true


위의 사용자 정의된 Myinstanceof는 IE 커널 인스턴스 스토리지 프로토타입이 아니기 때문에 직접 구현한 함수입니다. __proto__, Myinstanceof는 통과하지 못하며, 다른 브라우저에서는 문제가 없을 것입니다
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.