>  기사  >  웹 프론트엔드  >  JavaScript 프로토타입 상속_js 객체 지향

JavaScript 프로토타입 상속_js 객체 지향

WBOY
WBOY원래의
2016-05-16 17:57:591069검색

Object.prototype
JavaScript는 프로토타입 상속을 기반으로 하며 모든 객체에는 프로토타입 속성이 있습니다. Object.prototype은 모든 객체의 루트이며 변경할 수 없습니다.

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

Object.prototype=null
Alert(Object .prototype);//[object Object]

Object 및 Object.prototype
Object는 Object.prototype에서 상속되며 Object.prototype에 속성을 추가합니다. 개체에 반영됩니다. 예:
코드 복사 코드는 다음과 같습니다.

Object.prototype.nameStr= "객체 프로토타입" ;
Object.prototype.getName=function(){return this.nameStr}
alert(Object.getName());//객체 프로토타입

함수 .prototype 및 Object .prototype
Object.prototype이 모든 것의 루트이므로 Function.prototype은 Object.prototype의 모든 속성도 상속합니다. 예:
코드 복사 코드는 다음과 같습니다.

Object.prototype.nameStr= "객체 프로토타입" ;
Object.prototype.getName=function(){return this.nameStr};
alert(Function.prototype.getName());//객체 프로토타입


Object/Function/String/Number/Boolean/Array 및 Date
Object/Function/String/Number/Boolean/Array 및 Date는 모두 함수이고 함수는 Function.prototype에서 상속되므로 Function.prototype을 변경합니다. 객체/함수/문자열/숫자/부울/배열 및 날짜에도 영향을 미칩니다. 예:
코드 복사 코드는 다음과 같습니다.

Function.prototype.initType= '함수 유형' ;
Function.prototype.getType=function(){return this.initType};
//alert(Object.getType());//함수 유형
//alert(Date .getType() );//함수 유형
//alert(Number.getType());//함수 유형
//alert(String.getType());//함수 유형
/ /alert(Boolean .getType());//함수 유형
alert(Array.getType());//함수 유형

마찬가지로 Function.prototype도 Object의 영향을 받습니다. .prototype이 다음 레벨로 전달되었습니다. 예:
코드 복사 코드는 다음과 같습니다.

Object.prototype.nameStr= "객체 프로토타입" ;
Object.prototype.getName=function(){return this.nameStr}
alert(Function.prototype.getName());//객체 프로토타입
alert(Array.getName ()); //객체 프로토타입

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

alert( Boolean.prototype.getName());//객체 프로토타입

Array/Array.prototype 및 Function.prototype/Object.prototype

배열은 다음과 같습니다. Function.prototype의 영향을 받는 함수 객체 Array.prototype의 영향은 함수 객체가 아니며 Function.prototype의 영향을 받지 않습니다. 그러나 모든 객체는 Object.prototype의 영향을 받으므로 Array.prototype도 Object의 영향을 받습니다. .원기. 예:
코드 복사 코드는 다음과 같습니다.

Object.prototype.nameStr= "객체 프로토타입" ;
Object.prototype.getName=function(){return this.nameStr}
//alert(Function.prototype.getName());//객체 프로토타입
//alert (Boolean.prototype .getName());//객체 프로토타입
Function.prototype.initFun=function(){
return 'Function.prototype.initFun'
}
alert(Array. initFun()) ;//Function.prototype.initFun
var arr=['a','b']
alert(arr.getName());//객체 프로토타입
alert(arr .initFun() );//오류: arr.initFun은 함수가 아닙니다
alert(arr.initFun);//정의되지 않음
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.