JavaScript에서 데이터 유형은 주로 원시 유형 및 기준 유형으로 나뉩니다. 모든 참조 유형은 객체의 사본에서 나옵니다. 이 기사는 Error New Technology Channel의 편집자가 가져온 객체 객체의 숨겨진 기능에 대한 소개입니다. 봅시다!
이 속성은 클래스의 프로토 타입에 정의됩니다. 객체 인스턴스가 생성 된 후 __proto__ 체인을 통해 객체 인스턴스에서 호출 할 수 있으며 현재 클래스의 생성자를 가리 킵니다. 이렇게하면 객체가 직접적으로 속하는 클래스를 결정할 수 있습니다 (인스턴스와는 달리 인스턴스는 객체가 직접적으로 속하는 클래스에 국한되지 않으며, 부모 클래스조차도 사실을 반환합니다).
[예]
추적 (Object.Prototype.constructor == Object); // true를 출력합니다
var a = new Object ();
추적 (a.constructor == 객체); // true를 출력합니다
var b = 새로운 배열 ();
추적 (b.constructor == 어레이); // true를 출력합니다
추적 (b.constructor == 객체); // false를 출력합니다
추적 (b 인스턴스 객체); // true를 출력합니다
속성 : Object .__ 생성자 __
이 속성 함수는 Object.constructor와 유사합니다. 차이점은 클래스의 프로토 타입에 정의되지 않지만 객체 인스턴스가 생성 될 때 객체 인스턴스에 첨부된다는 것입니다. 동시에,이 속성은 Super 키워드에 의해 상위 클래스 생성자로 사용될 때 암시 적으로라고도하며, 상위 클래스 생성자를 가리키는 데 사용됩니다.
[예]
추적 (Object.Prototype .__ Constructor__ == Object); // false를 출력합니다
var a = new Object ();
트레이스 (a .__ 생성자 __ == 객체); // true를 출력합니다
var b = 새로운 배열 ();
추적 (b .__ 생성자 __ == 배열); // true를 출력합니다
추적 (b .__ 생성자 __ == 객체); // false를 출력합니다
방법 : Object.isprototype (classfunc)
이 방법은 현재 객체가 객체 obj의 __proto__ 체인에 있는지 여부를 결정하는 데 사용됩니다. 이 방법은 수업이 다른 클래스의 부모인지 자녀인지를 결정하는 데 사용될 수 있습니다.
[예]
TRACE (Object.Prototype.isprototypof (new Object ()); // true를 출력합니다
TRACE (Object.Prototype.isprototypof (new Array ()); // true를 출력합니다
TRACE (array.prototype.isprototypof (new Object ()); // false를 출력합니다
TRACE (Object.Prototype.isprototypof (Array.Prototype)); // 객체가 배열의 상위 클래스인지 판단합니다.
방법 : object.isproperneyenumerable (propname)
이 방법은 PropName이라는 멤버가 현재 오브젝트에 존재하는지 여부를 결정하는 데 사용되며 (for..in을 사용), 즉 볼 수 있는지 여부 (AssetPropflags Global Function을 사용하여 객체 속성이 표시되는지 여부).
[예]
var a = {x : 1, y : 2};
AssetPropflags (a, [ "y"], 1); // 세트 y는 보이지 않습니다
추적 (ay); // 출력 2
(a) 추적 (i); // 출력 x
트레이스 (a.isproperneyenumerable ( "x")); // true를 출력합니다
트레이스 (a.isproperneyenumerable ( "y")); // false를 출력합니다
방법 : Object.HasOwnProperty (propname)
이 방법은 PropName이라는 멤버가 __proto__ 체인을 통해 클래스 프로토 타입에서 참조되지 않고 현재 객체 자체의 구성원인지를 결정하는 데 사용됩니다.
[예]
기능 test () {}
test.prototype.x = 1;
var a = new test ();
ay = 2;
추적 (Ax); // 출력 1
추적 (A.HasOwnProperty ( "X")); // false를 출력합니다
추적 (ay); // 출력 2
트레이스 (A.HasOwnProperty ( "y")); // true를 출력합니다
방법 : Object.ToString ()
이 메소드는 일반적으로 클래스 프로토 타입에서 정의되는 문자열 유형으로 변환 될 때 객체에 의해 생성 된 문자열 결과를 정의 할 수 있습니다.
[예]
기능 지점 (x, y) {
this.x = x;
this.y = y;
}
point.prototype.tostring = function () {
"[x :" + this.x + ", y :" + this.y + "];
};
var pos = 새로운 포인트 (10, 20);
추적 ( "위치는" + pos); // 출력 위치는 [x : 10, y : 20]입니다.
위는 객체 객체의 숨겨진 기능에 대한 소개입니다. 나는 모든 사람이 명확한 이해를 가지고 있다고 생각합니다. 기술 채널에 대한 더 많은 지식은 잘못된 새로운 기술 채널에 있습니다!