Function.prototype.toString이나 다른 것 대신 Object.prototype.toString을 사용하는 이유는 무엇입니까? 이는 toString 해석 방법과 관련이 있습니다. 다음은 ECMA의 Object.prototype.toString에 대한 설명입니다.
Object.prototype.toString( )
toString 메소드가 호출되면 다음 단계가 수행됩니다.
1. 이 객체의 [[클래스]] 속성을 가져옵니다.
2. "[object ", Result (1) 및 "]" 세 문자열을 연결하여 문자열 값을 계산합니다.
3. 반품 결과(2)
프로세스는 간단하게 다음과 같습니다. 1. 객체의 클래스 이름(객체 유형)을 가져옵니다. 2. 그런 다음 [객체, 획득한 클래스 이름]을 결합하여 반환합니다.
ECMA에는 배열에 대한 설명이 다음과 같습니다.
새로 생성된 객체의 [[클래스]] 속성은 “배열”로 설정됩니다.
따라서 우리는 배열을 감지하기 위해 다음 코드를 사용합니다:
function isArray(o) { return Object.prototype.toString.call(o) === '[객체 배열]' }
이 방법은 인스턴스오브의 페이지 간 문제를 해결할 뿐만 아니라 속성 감지 방법의 문제도 해결합니다. 정말 획기적인 솔루션입니다.
또한 이 솔루션은 날짜, 함수 및 기타 유형의 개체를 결정하는 데에도 적용할 수 있습니다.
다른 여러 가지 방법이 있습니다:
var arr = []; 배열 인스턴스 반환
다른 좋은 방법 있으면 올려주세요.