javascript의 코드 스니핑은 기본 객체와 프로토타입을 확장합니다.javascript 팁
참고: 번역에 부적절한 내용이 있으면 정정해 주세요. 모두 즐거운 연휴 보내세요!
특별한 필요 없이 네이티브 객체와 프로토타입을 확장하는 것은 좋지 않습니다
//하지 마세요
Array.prototype.map = function() {
// 일부 코드
}
예를 들어 일부 오래된 브라우저에 일부 ECMAScript5 메서드를 추가하는 것은 가치 있는 일입니다.
이 경우 일반적으로 다음과 같이 합니다.
if (!Array.prototype.map) {
Array.prototype.map = function() {
//일부 코드
}
}
편집증이 심한 경우 다른 사람이 map을 true 또는 기타와 같은 다른 예상치 못한 값으로 정의하는 것을 방지하기 위해 감지 코드를 다음과 같이 변경할 수 있습니다.
if (typeof Array.prototype.map !== "function") {
Array.prototype .map = function() {
// 일부 코드
};
}
(이렇게 하면 다른 개발자의 지도 정의가 손상되고 해당 기능 구현에 영향을 주지만)
하지만 적대적이고 경쟁적인 환경에서는(즉, js 라이브러리를 제공하거나 사용할 때) 누구도 신뢰해서는 안 됩니다. 다른 사람의 js 코드가 자신의 코드보다 먼저 로드되고 ES5와 완전히 호환되지 않는 map() 메서드를 정의하여 코드가 제대로 실행되지 않는 경우 어떻게 해야 합니까?
그러나 Webkit 커널이 map() 메소드를 구현한다면 이 메소드는 확실히 정상적으로 실행될 것이므로 안심하셔도 됩니다. 그렇지 않으면 코드를 사용하여 이를 감지해야 합니다.
다행히 이는 JavaScript에서 구현하기 쉽습니다. 네이티브 함수의 toString 메서드를 호출하면 함수의 문자열이 반환됩니다.
예를 들어 Chrome 콘솔에서:
> ; Array.prototype.map.toString();
"function map() { [native code] }"
올바른 코드 검사는 항상 약간 불쾌한 일입니다. 다른 브라우저에서는 공백과 줄 바꿈을 너무 가볍게 처리하기 때문입니다. 테스트 내용은 다음과 같습니다.
Array.prototype .map.toString() .replace(/s/g, '*');
// "*function*map()*{*****[native*code]*}*" // IE
// " function*map()*{*****[native*code]*}" // FF
// "function*map()*{*[native*code]*} " // Chrome
s를 제거하면 더욱 실용적인 문자열이 됩니다.
Array.prototype.map.toString().replace(/s/g, '')// "functionmap(){[nativecode] }"
Array.prototype... 같은 모든 작업을 반복할 필요가 없습니다. 운영. 이 함수는 객체를 매개변수(예: Array.prototype), 추가할 속성(예: 'map'), 추가할 함수로 받아들입니다.
var nbody = "function" prop "(){[nativecode]}"
if (o.hasOwnProperty(prop) &&
o[prop].toString().replace(/s/ g, ' ') === nbody) {
//테이블 이름은 네이티브입니다!
true 반환
}
//새로 추가됨
o[prop] = fn
}
//이것이 네이티브 메소드입니다
shim(
Array.prototype, 'map',
function(){/*...*/}
) / / true
//새로 추가된 메소드입니다
shim(
Array.prototype, 'mapzer',
function(){alert(this)}
); 1,2,3].mapzer(); // 경고 1,2,3

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Genshin Impact 버전 4.4의 새로운 지도를 소개합니다. Genshin Impact 4.4 버전은 또한 Liyue에서 Sea Lantern Festival을 열었습니다. 동시에 버전 4.4에서는 Shen Yu Valley라는 새로운 지도 영역이 출시됩니다. 제공된 정보에 따르면 Shen Yugu는 실제로 Qiaoying Village의 일부이지만 플레이어는 Shen Yugu라고 부르는 데 더 익숙합니다. 이제 새로운 맵을 소개하겠습니다. Genshin Impact 버전 4.4의 새로운 지도 소개 버전 4.4에서는 Liyue 북쪽에 "Chenyu Valley·Shanggu", "Chenyu Valley·Nanling" 및 "Laixin Mountain"이 개방됩니다. 계곡·상구' . ※마신 퀘스트·액트 3: 용과 자유의 노래 프롤로그를 완료하면 순간이동 앵커 포인트가 자동으로 잠금 해제됩니다. 2. Qiaoyingzhuang 따뜻한 봄바람이 천위의 산과 들에 다시 한 번 스며들 때, 향기로운

js의 객체인 Prototype은 다른 객체의 속성과 메서드를 정의하는 데 사용됩니다. 각 생성자는 프로토타입 객체를 가리키는 포인터입니다. 생성자의 프로토타입 특성은 속성과 메서드를 상속합니다. 프로토타입 체인, 객체의 속성에 액세스하려고 하면 js는 먼저 객체에 이 속성이 있는지 확인합니다. 그렇지 않은 경우 js는 객체의 프로토타입으로 전환합니다. 계속해서 프로토타입의 프로토타입을 찾아보세요.

Go 언어와 Python은 각자의 장점과 특성을 지닌 매우 인기 있는 프로그래밍 언어입니다. 고성능 프로그래밍과 관련하여 둘 사이에는 몇 가지 차이점이 있습니다. 이 기사에서는 Go 언어와 Python을 비교하여 어느 것이 고성능 프로그래밍에 더 적합한지 살펴보겠습니다. 먼저 Go 언어를 이해해 봅시다. Go는 단순성, 효율성, 동시성에 중점을 두고 Google에서 개발한 오픈소스 프로그래밍 언어입니다. Go 언어의 디자인 목표 중 하나는 고성능 프로그래밍 경험을 제공하는 것입니다. 가벼운 코루틴(goro

프로토타입과 프로토타입 체인의 차이점은 다음과 같습니다. 1. 프로토타입은 객체 간 속성과 메소드의 공유 및 상속을 실현하는 데 사용되는 일부 공유 속성 및 메소드를 포함하여 각 객체가 갖는 속성입니다. 반면 프로토타입 체인은 상속입니다. 메커니즘은 객체 간 상속 관계를 정의하여 객체가 프로토타입 객체의 속성과 메서드를 공유할 수 있도록 하는 객체 간 프로토타입 관계를 통해 구현됩니다. 2. 프로토타입의 기능은 객체의 공유 속성과 메서드를 정의하는 것입니다. 여러 객체가 동일한 프로토타입 객체의 속성과 메서드를 공유할 수 있도록 하며 프로토타입 체인의 기능은 객체 간의 상속 관계 등을 실현하는 것입니다.

오늘날 급속한 기술 발전의 시대에 프로그래밍 언어의 선택은 매우 중요해졌습니다. 소프트웨어 개발 분야의 지속적인 발전으로 Go 언어와 Python은 많은 주목을 받는 두 가지 프로그래밍 언어가 되었습니다. 이 기사에서는 독자가 프로젝트 요구 사항에 따라 적절한 프로그래밍 언어를 선택할 수 있도록 Go 언어와 Python을 비교 분석합니다. 먼저 Go 언어를 이해해 봅시다. Go 언어는 Google에서 개발한 정적으로 컴파일된 프로그래밍 언어입니다. 강력한 동시 처리 기능과 효율적인 가비지 수집 메커니즘을 갖추고 있습니다.

지난 해 대형 모델 기술이 널리 적용되면서 우리는 AI가 작업 방식을 어떻게 근본적으로 변화시키는지 목격했습니다. 프로그래밍 분야에서도 AI의 개입은 프로그래머들에게 전례 없는 편리함을 가져다 줄 것입니다. 최근 Feishen Technology는 자체 개발한 대규모 코드 모델을 기반으로 하는 AI 코드 도우미인 FittenCode를 출시했습니다. FittenCode는 프로그래머가 코딩 작업을 더 빠르고 정확하며 더 높은 품질로 완료하고 코딩 효율성을 크게 향상시키며 자유롭고 개방적인 환경에 기여할 수 있습니다. 사용자 여러분! 제품 공식 웹사이트 주소: https://code.fittentech.com/FittenCode는 마지막 출시 이후 빠르게 인기를 얻었습니다. 개발팀은 기능을 제공하기 위해 밤낮으로 일했습니다.

js 프로토타입과 프로토타입 체인의 기능은 객체 상속을 실현하고, 메모리 공간을 절약하며, 코드의 성능과 유지 관리성을 향상시키는 것입니다. 자세한 소개: 1. 객체 상속 구현 프로토타입과 프로토타입 체인을 사용하면 객체를 생성하고 다른 객체의 속성과 메서드를 상속할 수 있습니다. 새 객체 객체는 프로토타입 객체의 속성과 메서드에 액세스할 수 있습니다. 2. 메모리를 절약하고 성능을 향상시킵니다. JavaScript에서는 각 객체가 프로토타입 체인을 통해 프로토타입을 공유할 수 있습니다.

프로토타입의 특징은 다음과 같습니다. 1. 프로토타입은 다른 객체와 마찬가지로 속성과 메서드를 가질 수 있는 일반 객체입니다. 2. 객체가 생성되면 프로토타입이 자동으로 연결됩니다. 새 개체를 생성하면 JavaScript는 자동으로 개체에 프로토타입을 할당하고 이를 개체와 연결합니다. 3. 개체는 프로토타입 체인을 통해 프로토타입의 속성과 메서드에 액세스할 수 있습니다. 각 객체에는 프로토타입이 있습니다. 객체의 속성에 액세스할 때 객체 자체에 속성이 없으면 프로토타입 객체에서 검색됩니다.
