자바스크립트 - 인스턴스 연산자
黄舟
黄舟 2017-05-19 10:26:43
0
3
714

https://www.ibm.com/developer...

이 기사를 바탕으로

instaceof는 다음 코드로 시뮬레이션할 수 있습니다

으아악

하지만
var a=1;
instance_of(a,Object)는 true
a instanceof Object가 false를 반환하는데, 왜 그럴까요?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답(3)
伊谢尔伦

소유자님, instance_of 是代替不了 instanceof

을 사용해 보세요

먼저 샘플 a가 Number 유형인지 확인하세요

그러나 실행 결과는 다음과 같습니다
instance_of(a, Object) // true
instance_of(a, Number) // true

instance_of 메소드 수정:

으아악

다시 실험해 보세요:

으아악
世界只因有你

이 글에서 사용된 표준은 ES3입니다

ES6의 instanceof标准更长一点, 规定了当type(L)不是Object时L instanceof R는 false를 반환해야 합니다. 이 모의 코드는 적용되지 않습니다

曾经蜡笔没有小新

한 부분은 시뮬레이션 코드에 있는 프로토타입 체인의 콘텐츠입니다.

으아아아

L = L._proto_는 L이 프로토타입 체인까지 프로토타입을 검색한다는 의미이며, 이 예에서는 마지막으로 Number ==> Object 객체에서 객체를 래핑하고 R은 Object, 합동 연산자를 전달한 후 true를 반환하므로 instance_of(a,Object)는 true입니다. L = L._proto_ 代表着L会沿着原型链一直向上查找原型,而在本例中,最后是从Number包装对象==>Object对象,而R就是Object,再经过全等运算符之后就返回true,所以instance_of(a,Object)为true。

a instanceof Object

instanceofObject는 프로토타입 체인 검색을 거치지 않고 Number 객체의 인스턴스와 Object 사이에서 직접 판단하기 때문에 false를 반환하므로 결과는 false입니다🎜
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿