JavaScript의 객체 객체는 JS의 모든 객체의 기본 클래스입니다. 즉 JS의 모든 객체는 객체 객체에서 파생됩니다. 객체 객체는 주로 임의의 데이터를 객체 형태로 캡슐화하는 데 사용됩니다.
1. 객체 클래스 소개
객체 클래스는 모든 JavaScript 클래스의 기본 클래스 (부모 클래스)이며 프로그래머가 생성자를 정의 할 필요없이 사용자 정의 객체를 쉽게 만들 수있는 방법을 제공합니다.
2. 객체 클래스의 주요 속성
1. 건설자 : 객체 생성자.
2. 프로로 타입 : 클래스의 프로토 타입 객체, 정적 특성을 얻습니다.
3. 객체 클래스의 주요 방법
1. HasownProperty (PropertyName)
객체에 특정 속성이 있는지 여부를 결정합니다. 이 속성은 문자열 (예 : obj.hasownproperty) ( "이름")으로 지정되어야하며 부울 값을 반환합니다. 이 방법은 객체의 프로토 타입 체인 에이 특성이 있는지 확인할 수 없습니다. 객체 자체의 구성원 여야합니다.
var str = ""; alert ( "str.hasownproperty (/"split/")는"+str.hasownproperty ( "split")); // falSealert를 반환합니다 ( "String.prototype.hasOwnProperty (/"split/")는"+string.prototype.hasownProperty ( "split")); // true를 반환합니다
실행 결과 :
Hasownproperty의 사용은 여기에만 있지 않습니다. jQuery에서 플러그인을 작성하는 데 없어서는 안될 단계는 매개 변수를 초기화하는 것입니다. 매우 중요한 방법 중 하나는 $ .extend (); 그 원칙은 hasownproperty () 메소드를 적용하는 것입니다. 동일한 이름의 오브젝트 멤버가있는 경우 in il loop to traverse object 멤버를 사용하십시오. 이러한 방식으로, 우리는 프로그램의 프로세스를 제어하기 위해 방법의 매개 변수 변경을 수정할 수 있습니다. 변경되지 않은 부품의 경우 기본값을 사용하여 제어 할 수 있습니다. 다음과 같이이 확장 기능을 단순히 시뮬레이션 할 수 있습니다.
함수 확장 (target, source) {// (소스의 var i) {if (target.hasownproperty (i)) {target [i] = source [i];}} return target;} var a = { "bob": "bob"{ "third"; exo "}; a) {alert (a [i]); // 원래 Bob이지만 이제는 leo가되었습니다}2. ISPrototype (Object)
객체가 다른 객체의 프로토 타입인지를 결정하십시오.
OBJ1.ISPROTOTYOF (OBJ2);
OBJ1은 객체의 인스턴스입니다. OBJ2는 프로토 타입 체인을 확인하는 또 다른 객체입니다. 프로토 타입 체인을 사용하여 동일한 객체 유형의 다른 인스턴스간에 기능을 공유 할 수 있습니다. OBJ2의 프로토 타입 체인에 OBJ1이 포함되어 있으면 ISPrototype의 방법이 true를 반환합니다. OBJ2가 OBJ2의 프로토 타입 체인에 OBJ1이 나타나지 않으면 ISPROTOTYP 방법은 False를 반환합니다.
<script type = "text/javaScript"> function foo () {this.name = 'foo';} function bar () {} bar.prototype = new foo (); var goo = new bar (); Alert (goo.name); //fooalert(bar.prototype.isprototypof(Goo) ;//true, 바의 프로토 타입 체인에 현재 객체 goo가 있으면 isprototype 메서드가 true </script>를 반환합니다.3. PropertyisEnumerable (PropertyName)
이 방법을 통해이 객체의 구성원이 가로 질 수 있는지 여부를 감지 할 수 있습니다. 트래버스가 가능하다면,이 객체가 a for in loop을 사용하여 통과 할 수 있음을 증명합니다.
형식은 다음과 같습니다. obj.propertyisEnumerable (propertyname)
PropertyName이 OBJ에 존재하고 for… in loop을 사용하여 철저하게 열거 될 수 있다면 PropertySenumerable 속성은 true를 반환합니다. 객체에 지정된 속성이 없거나 지정된 속성이 열거 될 수없는 경우 PropertySeenumerable 속성은 False를 반환합니다. 일반적으로 사전 정의 된 속성은 열거 할 수 없으며 사용자 정의 속성은 항상 열거됩니다.
4.ToString () : 객체에 해당하는 문자열을 반환합니다
5. valueof () : 객체에 해당하는 원래 유형을 반환합니다
위의 5 가지 방법은 Object.prototype에 정의됩니다. ECMAScript의 모든 객체는 객체에서 상속되므로 ECMAScript의 모든 객체에는 여러 가지 방법이 있습니다.
테스트 코드 1 :
var p = new Object (); // p 객체를 통해 직접 객체를 생성 // p 객체의 경우 p.age =; p.name = "克到到到到"; // 객체 클래스를 확장하고 show method 객체를 추가하고 prototype.show = function () {alert (this.age+"/t"+this.name);} alert (p.age (p.age); docum을 추가합니다. ent.write ( "<fre>"); docum document.writeln ( "p.isprototypo (p) :"+p.isprototyp (p)); docum "+p.propertyisEnumerable ("age ")); docum실행 결과 :
테스트 코드 2 :
var car = function () {{}; car.prototype.hello = function () {alert ( "hello car");}; var car = new car (); car.f = function () {alert ( "custom method");} document.write ( "<pre>"); docum "+car.hasownProperty ("f ")); // ture, car 객체는 f 메소드 문서를 가지고 있습니다. document.writeln ( "car.hasownproperty (/"hello/")"+car.hasownproperty ( "hello")); // CAR 자체가 hello 메소드 문서가 없기 때문에 false.writeln ( "car.propertyisEnumerable (/"hello/") 결과는 다음과 같습니다."+car.propertyisEnumerable ( "Hello")); // 물론이 방법이 없으면 False.writeln ( "car.constructor.prototype.hasownproperty (/"hello/") 결과는 다음과 같습니다. // 자동차 클래스 자동차의 프로토 타입에는 hello 메소드 문서가 있습니다. document.writeln ( "car.prototype.hasownproperty (/"hello/") 및 결과는 다음과 같습니다."+car.prototype.hasownproperty ( "hello")); // true, 자동차 클래스의 프로토 타입에는 hello method.writeln ( "car.prototype.propertyisenumerable (/") 결과가 있습니다. "+car.prototype.propertyisEnumerable ("hello ")); document.write ("</pre> ");실행 결과 :
위는 JavaScript Knowledge Points (11) 요약을 포함하여 편집자가 귀하에게 소개 한 JS의 객체 클래스에 대한 자세한 설명입니다. 나는 그것이 당신에게 도움이되기를 바랍니다.