rule_javascript 기술을 호출하는 javascript 함수
(1) 전역 함수 호출:
function makeArray( arg1, arg2 ){
return [this , arg1 , arg2 ]
}
함수를 정의하는 데 가장 일반적으로 사용되는 방법입니다. 나는 JavaScript를 배우는 사람들이 그 사용법에 익숙하다고 믿습니다.
호출 코드는 다음과 같습니다.
makeArray('one', 'two')
// => [ window, 'one', 'two' ]
이렇게 하면 됩니다. 전역 함수 호출이라고 할 수 있습니다.
왜 글로벌 기능이라고 하나요?
전역 개체 창의 메서드이므로
다음 메서드로 확인할 수 있습니다.
alert( typeof window.methodThatDoesntExist )
// => undefine
alert( typeof window.makeArray);
// => function
따라서 makeArray를 호출하는 데 사용한 메서드는 아래에서 호출한 메서드와 동일합니다.
window.makeArray('one', 'two') ;
// => [ window, 'one', 'two' ]
규칙 2를 호출하는 JavaScript 함수
(1) 객체 메소드 호출:
//객체 생성
var arrayMaker = {
someProperty: '여기에 일부 값',
make: makeArray
}
arrayMaker.make( 'one', 'two'); // => [ arrayMaker, 'one', 'two' ]
//또는 다음 메서드를 사용하여 호출합니다:
arrayMaker['make']('one' , 'two') ; // => [ arrayMaker, 'one', 'two' ]
이것과 지금의 차이점을 보면 this의 값이 객체 자체가 됩니다.
질문: 원래 함수 정의는 변경되지 않았지만 이것이 변경된 이유는 무엇입니까?
훌륭하다, 의심하는 게 맞다. 이는 JavaScript에서 함수가 전달되는 방식과 관련이 있습니다.
정확히 말하면 객체를 전달하거나 복사할 수 있습니다.
전체와 같습니다. function 매개변수 목록과 함수 본문이 모두 복사되고
이 arrayMaker의 make 속성에 할당됩니다. 이는 다음과 같이 arrayMaker를 정의하는 것과 같습니다.
var arrayMaker = {
someProperty: 'some value here. ',
make: function (arg1, arg2) {
return [ this, arg1, arg2 ]
}
}
두 번째 호출을 이해하지 못하는 경우 규칙을 적용하면 이벤트 처리 코드에서 다양한 버그가 자주 발생합니다. 예:
function 버튼클릭( ){
var text = (this === window) ? 'window' : this.id;
alert( text )
}
varbutton1 = document.getElementById('btn1') ;
var 버튼2 = document.getElementById('btn2');
button1.onclick =
button2.onclick = function(){
buttonClicked(); ;
첫 번째 버튼을 클릭하면 "btn1"이 표시됩니다. 이는 메서드 호출이고 이것이 속한 개체(버튼 요소)이기 때문입니다.
주의하시기 바랍니다:
button1.onclick = 버튼클릭;
button2.onclick = function(){
buttonClicked()
}; 차별화.
JavaScript 함수 호출 규칙 3
물론 jQuery 라이브러리를 사용한다면 그렇게 많이 생각할 필요는 없습니다. 현재 이벤트 소스 요소에 대한 참조가 포함되어 있는지 확인하기 위한 값입니다.
//jQuery 사용 $('#btn1').click( function() { alert( this.id ); // jQuery는 'this'가 버튼이 되도록 보장합니다
}) ;
그렇다면 jQuery는 어떻게 이 값을 오버로드합니까?
답은 다음과 같습니다: call() 및 apply()
함수를 점점 더 많이 사용하면 당신이 필요로 하는 것이 동일한 맥락에 있지 않다는 것을 알게 되었고, 이는 의사소통을 극도로 어렵게 만듭니다.
Javascript에서 함수는 객체이기도 합니다. 함수 객체에는 사전 정의된 메소드가 포함되어 있으며 그 중 두 가지는 apply() 및 call()을 사용하여 컨텍스트를 재설정할 수 있습니다.
functionbuttonClicked(){
var text = (this === window ) ? 'window' : this.id;
alert(text );
}
varbutton1 = document.getElementById('btn1')
doc.getElementById('btn2' );
buttonClicked;
button2.onclick = function(){
buttonClicked.call(this) //btn2
}; 🎜>
규칙 4를 호출하는 JavaScript 함수
(1) 생성자
Javascript에서 유형의 정의를 깊이 파고들고 싶지는 않지만 지금은 유형이 없다는 것을 알아야 합니다.
그리고 모든 사용자 정의 유형에는 초기화 함수가 필요합니다(초기화 함수의 속성으로). //생성자 선언
function ArrayMaker(arg1, arg2) {
this.someProperty = 'whatever';
this.theArray = [ this, arg1, arg2 ]
}
/ / 명령문 인스턴스화 방법
ArrayMaker.prototype = {
someMethod: function () {
alert( 'someMethod Called')
},
getArray: function () {
return this .theArray;
}
};
var am = new ArrayMaker( 'one', 'two' )
var other = new ArrayMaker( '첫 번째', '두 번째' ) ;
am.getArray();
// => [ am, 'one' , 'two' ]
other.getArray()
// => [ other , 'first', 'second' ]
매우 중요하고 주목할만한 점은 함수 호출 앞에 나타나는 새로운 연산자입니다. 그것이 없으면 함수는 전역 함수와 같으며 우리가 만든 속성은 모두입니다. 전역 개체(창)에 생성되지만 사용자는 이를 원하지 않습니다.
또 다른 점은 생성자에 반환 값이 없기 때문에 new 연산자를 사용하는 것을 잊어버리면 일부 변수가 정의되지 않은 상태로 할당된다는 것입니다.
따라서 생성자 함수를 대문자로 시작하는 것이 좋은 습관입니다. 이는 호출할 때 이전 new 연산자를 잊지 않도록 알림으로 사용할 수 있습니다. 초기화 함수는 다음과 같습니다. 다른 언어로 작성하는 초기화 함수도 이와 유사하게 생성할 객체가 됩니다.

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

C++ 함수 호출 성능 최적화에는 매개변수 전달 전략과 반환 값 유형 최적화라는 두 가지 측면이 포함됩니다. 매개변수 전달 측면에서 작은 객체와 수정 불가능한 매개변수에는 값 전달이 적합하고, 큰 객체와 수정 가능한 매개변수에는 참조나 포인터 전달이 적합하며 포인터 전달이 가장 빠릅니다. 반환값 최적화 측면에서 작은 값은 직접 반환할 수 있고, 큰 객체는 참조나 포인터를 반환해야 합니다. 적절한 전략을 선택하면 함수 호출 성능이 향상될 수 있습니다.

JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

C/C++에서 포인터 비교 규칙은 다음과 같습니다. 동일한 객체를 가리키는 포인터는 동일합니다. 다른 객체에 대한 포인터는 동일하지 않습니다. 예외: 널 주소에 대한 포인터는 동일합니다.

C++에서 모듈 전체에 걸쳐 함수 호출: 함수 선언: 대상 모듈의 헤더 파일에서 호출할 함수를 선언합니다. 함수 구현: 소스 파일에 함수를 구현합니다. 모듈 연결: 링커를 사용하여 함수 선언과 구현이 포함된 모듈을 서로 연결합니다. 함수 호출: 호출하려는 모듈에 대상 모듈의 헤더 파일을 포함시킨 후 함수를 호출합니다.

C++ 함수 호출 리플렉션 기술을 사용하면 런타임 시 함수 매개변수 및 반환 값 정보를 동적으로 얻을 수 있습니다. 매개변수 및 반환 값 유형 정보를 얻으려면 typeid(decltype(...)) 및 decltype(...) 표현식을 사용하십시오. 리플렉션을 통해 동적으로 함수를 호출하고 런타임 입력을 기반으로 특정 함수를 선택할 수 있으므로 유연하고 확장 가능한 코드가 가능해집니다.
