>  기사  >  웹 프론트엔드  >  자바스크립트에서 함수를 호출하는 방법은 무엇입니까?

자바스크립트에서 함수를 호출하는 방법은 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2021-04-15 13:45:562477검색

JavaScript에서 함수를 호출하는 방법은 다음과 같습니다. 1. makeArray 함수를 해당 메서드 중 하나로 사용하고 json을 사용하여 객체를 선언합니다. 2. [obj.myFunction()] 메서드를 사용하여 구문을 호출합니다.

자바스크립트에서 함수를 호출하는 방법은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, DELL G3 컴퓨터.

JavaScript에서 함수를 호출하는 방법은 다음과 같습니다.

JavaScript 함수 호출 규칙 1

myFunction()과 같은 명확한 소유자 객체 없이 직접 호출되는 함수에서 this의 값은 기본 개체(브라우저의 창)

함수 호출

이제 간단한 개체를 만들고 makeArray 함수를 해당 메서드 중 하나로 사용하겠습니다. json을 사용하여 개체를 선언하고 이 메서드도 호출하겠습니다.

//creating the object
var arrayMaker = {
    someProperty: 'some value here',
    make: makeArray
};
 
//invoke the make() method
arrayMaker.make('one', 'two');
// => [ arrayMaker, 'one', 'two' ]
// alternative syntax, using square brackets
arrayMaker['make']('one', 'two');
// => [ arrayMaker, 'one', 'two' ]

여기에서 차이점을 확인하세요. 원래 함수 정의가 왜 변경되지 않았는지, 왜 창이 아닌지 궁금할 것입니다. 이것이 JSavascript에서 함수가 전달되는 방식이고 함수는 JavaScript의 표준입니다. 데이터 유형은 객체입니다. 정확하게 말하면 매개변수 목록과 함수 본문이 포함된 전체 함수를 복사하여 arrayMaker의 make 속성에 할당한 다음 arrayMaker:

var arrayMaker = {
    someProperty: 'some value here',
    make: function (arg1, arg2) {
        return [ this, arg1, arg2 ];
    }
};

JavaScript 함수를 정의하는 것과 같습니다. 호출 규칙 2

obj.myFunction() 또는 obj['myFunction']()과 같은 메서드 호출 구문에서 이 값은 obj

이것은 이벤트 처리입니다. 코드에 있는 버그의 주요 소스는 다음과 같습니다. 이 예제를 보세요

<input type="button" value="Button 1" id="btn1"  />
<input type="button" value="Button 2" id="btn2"  />
<input type="button" value="Button 3" id="btn3"  onclick="buttonClicked();"/>
 
<script type="text/javascript">
function buttonClicked(){
    var text = (this === window) ? &#39;window&#39; : this.id;
    alert( text );
}
var button1 = document.getElementById(&#39;btn1&#39;);
var button2 = document.getElementById(&#39;btn2&#39;);
 
button1.onclick = buttonClicked;
button2.onclick = function(){   buttonClicked();   };
</script>

첫 번째 버튼을 클릭하면 메서드 호출이므로 "btn"이 표시되고 이것이 속한 개체(버튼 요소)입니다. 두 번째 버튼을 클릭하면 "창"이 표시됩니다. "buttonClicked가 직접 호출되기 때문입니다. (obj.buttonClicked()와는 다릅니다.) 이는 이벤트 핸들러를 레이블에 직접 배치하는 세 번째 버튼과 동일합니다. 따라서 세 번째 버튼을 클릭한 결과는 세 번째 버튼과 동일합니다.

jQuery와 같은 JS 라이브러리를 사용하면 이벤트 처리 함수가 jQuery에 정의될 때 JS 라이브러리가 현재 이벤트 소스 요소에 대한 참조가 포함되도록 이 값을 다시 작성하는 데 도움이 된다는 이점이 있습니다.

//使用jQuery
$(&#39;#btn1&#39;).click( function() {
    alert( this.id ); // jQuery ensures &#39;this&#39; will be the button
});

관련 무료 학습 권장사항: javascript 비디오 튜토리얼

위 내용은 자바스크립트에서 함수를 호출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.