이 기사에서는 JavaScript의 객체 지향 프로그래밍의 고급 기능에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
1. 객체를 만드는 세 가지 방법 :
첫 번째 구조 방법 : 새로운 개체
var a = new Object (); ax = 1, ay = 2;
두 번째 구조 방법 : 객체 직접 측정
var b = {x : 1, y : 2};세 번째 구조 방법 : 유형을 정의합니다
함수점 (x, y) {this.x = x; this.y = y;} var p = new Point (1,2);2. 개체에 액세스하십시오
객체의 속성에 액세스하십시오
브래킷 표기법 : 영웅 [ '이름']. ,,,
포인트 표기법 : Hero.name.
접근 된 속성이 존재하지 않으면 정의되지 않은 것이 반환됩니다.
개체에 액세스하는 방법
메소드 이름 : hery.say () 뒤에 괄호 한 쌍을 추가하십시오.
액세스 속성과 같은 액세스 방법 : hero [ 'say'] ().
3. 속성과 방법을 삭제합니다
// 빈 객체 생성 var hero = {}; // hero.name = "javaScript"; hero.value = "heroloworld"; hero.sayname = function () {return "hello" + hero.name;}; // test alert (hery.name); // output javaScriptalert (hero.sayName ()); // output hello JavaScript // 영웅 객체의 이름 속성 삭제 hero.name; // test alert (hero.sayname ()); // 출력 hello undefined4.이 값을 사용하십시오
// 빈 객체 생성 var hero = {}; // 영웅 객체 영웅에 속성과 메소드를 추가합니다 .name = "javaScript"; hero.value = "helloworld"; hero.sayname = function () {return "hello" + this.name;}; // test alert (hery.name); // output javaScriptTalet (hero.sayName ()); // 출력 hello JavaScript요약 :
① 여기서 여기에서는 실제로 "이 객체"또는 "현재 객체"를 나타냅니다.
② 이것의 사용은 대부분의 사람들에게 문제입니다. 따라서 너무 많이 사용하는 것이 좋습니다!
5. 내장 개체
내장 객체는 대략 세 그룹으로 나눌 수 있습니다.
data 객체, 배열, 부울, 번호 및 문자열을 포함한 데이터 캡슐화 클래스 객체. 이러한 객체는 JavaScript의 다른 데이터 유형을 나타내며, 모두 정의되지 않은 상태와 무효 상태뿐만 아니라 고유 한 유형의 반환 값을 가지고 있습니다.
② 툴 클래스 객체 - 수학, 날짜, regexp 등과 같은 트래버스를 제공하는 데 사용되는 객체를 포함하여.
③ 일반 오류 개체 및 기타 다양한 특수 오류 클래스 개체를 포함한 오류 클래스 객체. 특정 예외가 발생할 때 프로그램의 작동 상태를 수정하는 데 도움이 될 수 있습니다.
6. 개체를 흡수합니다
객체는 JavaScript의 모든 객체의 부모 객체입니다. 즉, 모든 객체가 객체 객체에서 상속됩니다.
빈 개체 생성 :
var object = {}; var obj = new Object ();7. 객체를 돌립니다
배열 객체는 단일 변수에 여러 값을 저장하는 데 사용됩니다.
빈 배열 개체 생성 :
var object = {}; var obj = new array ();예를 들어 1 :
// 문자열 예제 // 문자열 정의 var str = "a, b, c, c, d, e, f, g"; // 문자열 객체의 split () 메소드를 사용하여 문자열을 배열 ar arr = str.split ( ",")로 자르기 위해 문자열을 var arr = str.split ( ",")로 자릅니다. arr = arr.reverse (); // 테스트 인쇄 경보 (arr.toString ());
8. 스트링 객체
문자열 객체와 기본 문자열 유형의 차이점 :
var str = "hello"; var obj = new String ( "World"); Alert (typeof str); // stringalert (typeof obj) 타입; // 객체의 타입
예를 들어 1 :
// 문자열이 지정된 문자열을 포함하는지 결정하는 예 // 판단 할 두 문자열을 정의하는 예 var str = "abcdefg"; var substr = "efg";/** 문자열에 지정된 문자열이 포함되어 있는지 판단하기 위해 함수를 정의합니다 * * 첫 번째 매개 변수 : 문자열이 판단 될 문자열 */strtr (strtr) {// string). 문자열 (str); // 판단 된 문자열 var result = string.substr (str.indexof (substr), substr.length);/**를 결정합니다. 인터셉트 문자열이 비어 있는지 결정합니다. false;}} alert (sub (str, substr));9. 프로토 타입
함수 자체는 또한 방법과 속성을 포함하는 객체입니다. 이제 우리가 공부하고 싶은 것은 기능 객체 - 프로토 타입의 또 다른 속성입니다.
프로토 타입을 사용하여 메소드와 속성을 추가하십시오
자체 특성을 사용하여 프로토 타입 속성을 다시 작성하십시오
내장 객체를 확장합니다
프로토 타입을 사용하여 메소드와 속성을 추가하십시오
아래는 새 기능 객체를 생성하고 몇 가지 속성과 방법을 설정하는 것입니다.
기능 영웅 (이름, 색) {this.name = 이름; this.color = 색상; this.hat. what. }} var hero = new Hero ( "JavaScript", "Red"); Alert (Hero.whatAreyou ()); // 출력 나는 빨간 JavaScript입니다위의 영웅 함수 객체에 몇 가지 속성과 메소드를 추가하십시오.
hero.prototype.price = 100; hero.prototype.rating = 3; hero.prototype.getInfo = function () {return "등급 :" + this.rating + "," + this.price;} alert (hery.getInfo ()); // 출력 등급 : 3, 가격 : 100위의 방법은 다음과 같이 수행 할 수 있습니다.
hero.prototype = {price : 100, 등급 : 3, getInfo : function () {return "등급 :" + this.rating + ", 가격 :" + this.price; }};자체 특성을 사용하여 프로토 타입 속성을 다시 작성하십시오
객체 자체의 속성이 프로토 타입 속성과 동일하다면 어떻게해야합니까? 대답은 객체 자체의 속성이 프로토 타입 속성보다 우선 순위가 높다는 것입니다.
function hero () {this.name = "jscript";} hero.prototype.name = "javaScript"; var here = new Hero (); Alert (hero.name); // output jscriptDelete hero.name; alert (hero.name); // 출력 javaScript내장 객체를 확장합니다
// 프로토 타입 배열 객체 배열을 판단 할 함수를 추가하십시오. }} return false;} // 배열 객체 정의 var var a = [ "빨간색", "녹색", "blue"]; // test alert (a.inarray ( "red")); //truealert(a.inarray("yellow "); //거짓10. 상속
두 클래스가 동일한 인스턴스 유형이라면 그들 사이에 몇 가지 관계가 있습니다. 우리는 동일한 사례의 유형 "상속"간의 일반화 된 관계를 호출합니다.
상속 관계에는 적어도 세 가지 의미가 포함됩니다.
subclass 서브 클래스의 사례는 상위 클래스의 방법을 공유 할 수 있습니다.
subclass 서브 클래스는 상위 클래스의 메소드를 무시하거나 새로운 방법을 확장 할 수 있습니다.
subclass 서브 클래스 및 부모 클래스는 둘 다 서브 클래스 인스턴스의 "유형"입니다.
JavaScript에서는 "상속"이 지원되지 않습니다. 즉, JavaScript에는 상속 된 구문이 없습니다. 이런 의미에서 JavaScript는 직접적인 객체 지향 언어가 아닙니다.
11. 프로토 타입 체인
프로토 타입 체인은 ECMAScript 표준에 의해 공식화 된 기본 상속 메소드입니다.
예를 들어:
함수 a () {this.name = "a"; this.toString = function () {return this.name};} 함수 b () {this.name = "b";} function c () {this.name = "c"; this.age = 18; this.getage = function () {return this.age};};설명:
객체는 B 객체의 프로토 타입 속성에서 직접 생성되며 이러한 객체의 원래 프로토 타입을 확장하지 않습니다.
새로운 엔티티는 새로운 a ()를 통해 생성 된 다음 객체의 프로토 타입을 덮어 쓰는 데 사용됩니다.
JavaScript는 전적으로 객체에 의존하는 언어이며 클래스 개념이 없습니다.
따라서, 관련 상속 작업이 엔티티의 속성을 통해 완료되기 전에 새로운 a ()가있는 엔티티를 직접 만들어야합니다.
이러한 상속 구현을 완료 한 후 A ()의 수정, 재 작성 또는 삭제는 B ()에 영향을 미치지 않습니다.
프로토 타입에서만 상속 :
함수 a () {} a.prototype.name = "a"; a.prototype.tostring = function () {return this.name}; 함수 b () {} b.prototype = a.prototype; b.prototype.name = "b"; 함수 c () {} c.prototype = b.prototype.name = "C. 18; c.prototype.getage = function () {return this.age};객체 간의 상속 (확장 내용, 할 수 없음) (얕은 사본)
// 함수는 객체를 수락하고 사본 함수를 반환합니다. extendCopy (p) {var z = {}; // 빈 객체 z를 정의합니다. i <p.length; i ++ z [i] = p [i]; // 배열로 취급되는 경우 이해할 수 있습니다. return z;} // 객체 a를 정의하지만 객체 a는 함수 객체가 아닙니다 객체 var var var a = {name : "a", toStr : function () {return this.name;}} // 객체 b를 정의하지는 않지만 객체 b는 객체 var b = extendCopy (a); b.name = "b"; b.tostr = function () {return this.uber.tostr () + "," + this.name;}; // 객체 C 정의 C = extendCopy (b); c.name = 18; Alert (c.toStr ()); // 출력 A, B, 18추신 : 자습서의 많은 코드 레이아웃은 표준화되지 않았습니다. 다음은 모든 사람이 사용할 수있는 몇 가지 JavaScript 코드 형식 및 미화 도구입니다.
JavaScript 코드 서식 도구 :
http://tools.vevb.com/code/js
자바 스크립트 코드 미화/압축/서식/암호화 도구 :
http://tools.vevb.com/code/jscompress
JSMIN Online JS 압축 도구 :
http://tools.vevb.com/code/jsmincompress
JavaScript에 대한 자세한 내용은이 사이트의 특별한 주제를 확인하십시오 : "JavaScript 객체 지향 튜토리얼", "JavaScript의 JSON 운영 기술 요약", "JavaScript 전환 효과 및 기술 요약", "JavaScript 검색 알고리즘 기술 요약", "JavaScript 특수 효과 및 기술", "Javascript Errors" "JavaScript 데이터 구조 및 알고리즘 기술의 요약", "JavaScript Traversal 알고리즘 및 기술 요약"및 "JavaScript 수학 연산 사용 요약"
이 기사가 모든 사람의 JavaScript 프로그래밍에 도움이되기를 바랍니다.