"[네이티브 코드]"가 무슨 뜻입니까?
저는 jQuery 코드를 조사하려고 했고, 그래서 이것을 사용했습니다.
document.write($.constructor);
결과는 다음과 같습니다.
function Function() { [native code] }
무엇인가.[native code]왜 진짜 코드가 안 보이는 거지?
테스트 대상Google-Chrome
컴파일된 언어가 아닌 해석된 언어로 함수를 정의할 때.함수를 정의하는 파일 / 문자열 / 텍스트에 액세스할 수 있습니다.
예를 들어 자바스크립트에서는 정의한 함수의 정의 본문 텍스트를 읽을 수 있습니다.
function custom( param ){
console.log( param );
}
console.log( custom.toString() ); // <- Will display the full code (in text) of the function.
자바스크립트에서 구성*에 의해 포함된 함수에 대해 동일한 작업을 수행하려고 하면 텍스트가 아닌 이진으로 구현됩니다.
console.log( setInterval.toString() );
// Will display: function setInterval() { [native code] }
그 기능을 구현하는 바이너리 코드를 보여줄 이유가 없습니다. 왜냐하면 그것은 가독성이 없고 심지어 사용할 수 없을 수도 있기 때문입니다.
jQuery는 기본 자바스크립트 동작을 확장합니다.예를 들어 Prototype.js와 달리 매우 높은 평가와 칭찬을 받은 이유 중 하나입니다.프로토타입은 정상적인 기능에 의존하는 다른 코드 조각과 함께 프로토타입을 사용할 때 자바스크립트의 자연스러운 동작을 변경하여 불일치가 발생할 수 있습니다.
tl;dr:
jQuery는 자바스크립트를 확장하며, 네이티브 코드를 사용하여 구현된 기능이 있습니다(성능이 좋은 것입니다).
*시공별 included:이 부분에 대해서 좀 더 자세히 설명을.자바스크립트 자체는 모든 언어(C++, Java 등)로 작성/구현이 가능합니다.Chrome에서 자바스크립트 엔진(V8)은 C++로 작성됩니다.파이어폭스의 자바스크립트 엔진(스파이더몽키)도 C++로 작성되었습니다.
언어 사양(ECMAscript)에 의해 정의되어 실제 구현에 포함되어야 하는 기능은 다른 언어(예: 이 두 경우 C++)로 작성되어 기본 기능/네이티브 기능으로 자바스크립트로 제공됩니다.
이 함수들은 실제로 컴파일된 (이진) C++ 코드이므로 자바스크립트 자체 내에서 표시될 수 없습니다. 예를 들어,[].map.toString()통사론
$,jQuery그냥 함수일 뿐입니다.호출하지 않고 그냥 평범한 기능입니다.함수의 생성자는Function,이런 이유로$.constructor드라마들.[native code].
bind는 다음과 같은 기능을 수행합니다.
var f = function() { /* source code */ }; console.log(f.toString());
function () { /* source code */ }
var a = {}; f = f.bind(a); console.log(f.toString());
function () { [native code] }
f = new Function('/* source code */'); console.log(f.toString());
function anonymous() { /* source code */ }
f = f.bind(a); console.log(f.toString());
function () { [native code] }
bind는 일종의 래퍼 코드에 대한 참조를 반환하거나, String은 사용자가 직접 만들지 않았기 때문에 bound copy native를 고려합니다.
그러나 string()을 사용하여 직접 로그 기능을 실행하면 원래 언바운딩된 함수의 소스 코드가 크롬으로 인쇄됩니다.
f = f.bind(a); console.log(f)
ƒ () { /* source code */ }
FF에서는 작동하지 않습니다. FF는 소스 코드 없이 함수 개체를 인쇄합니다.
언급URL : https://stackoverflow.com/questions/11234664/what-does-native-code-mean
'programing' 카테고리의 다른 글
| PowerShell 5.1 - 현재 사용 중인 모듈을 제거하는 방법 (0) | 2023.10.08 |
|---|---|
| 웹 응용 프로그램을 상대 파일 시스템 경로에 게시 (0) | 2023.10.08 |
| Oracle OCI, 바인딩 변수 및 IDIN(1, 2, 3)과 같은 쿼리 (0) | 2023.10.08 |
| C++ 전처리기가 C 전처리기와 동일합니까? (0) | 2023.10.08 |
| java.sql.SQL 예외:Io 예외:소켓 읽기 시간 초과 대 닫힌 연결 (0) | 2023.10.08 |