JS 진급

1916 단어 프런트엔드

JS 진급(1)


몇 가지 깔개:
모든 대상에는 이 있다proto__속성은 주로 계승에 사용되며 모든 함수에prototype 속성이 있습니다. 위에 속성, 방법을 마운트하고 함수 안의prototype에 주의하세요.constructor 속성, 대상, 문자열 등의 constructor와 다르다.
함수 안의prototype.constructor는 함수를 가리키는 인용이고 대상 등의 constructor가 출력하면\Object () {[native code]} 라는 형식을 볼 수 있습니다. 이것은 js 밑바닥의 디자인입니다.
우리가 계승을 실현할 때 constructor를 바로잡는 것은 사실 좀 더 규범화된 것일 뿐이다. 이 함수의 인용을 볼 수 있는 것은 하나의 제시에 해당하고 오해를 초래하지 않도록 한다. constructor 속성은 실제적인 작용이 없고 단지 아주 적은 기회만 있을 뿐이다. 예를 들어 그를 이용하여 방법을 추가할 것이다. 다음과 같다.
function fun(){};
var res = new fun();
res.constructor.prototype.add = function(){}
// res.constructor fun , fun 。

typeof instanceof
typeof "123"//string
typeof true//boolean
typeof 1//number
typeof undefined//undefined
typeof new Data()//object
typeof [1,2]//object
typeof function(){}//function
typeof null//object

위의 밤을 보면 typeof는 정확하게 식별할 수 있다.string,number,boolean,undefined,function,그러나 수조,null,object,date를 구별할 수 없다. 그 중에서null은 역사적 원인으로 남겨진 것이고object로 되돌아간다.그래서 우리는 이 몇 가지를 판단할 때 구분할 수 있는지 주의해야 한다.정확하게 식별하려면 다음과 같이 할 수 있다.
Object.prototype.toString.call([1,2,3])//"[object Array]"

결과에 대한 정규적인 일치를 통해 데이터 유형, 구체적인 코드를 정확하게 얻을 수 있다. 다른 에서 getParamType 방법을 찾을 수 있다. 일일이 열거하지 않고 다음은instanceof를 소개한다.
function fun(){}
var res = new fun();
res instanceof fun//true
Object.getPrototypeOf(res) === fun.prototype//true

instanceof를 사용할 때 Object가 실행된 것과 같습니다.getPrototypeOf(res) === fun.prototype은 구조 함수의 prototype이 실례의 원형 체인에 있는지 판단하는 데 있어 약간 돌아가므로 코드의 이해가 관건이다.

좋은 웹페이지 즐겨찾기