>  기사  >  웹 프론트엔드  >  이것은 JavaScript 함수에서 무엇을 의미합니까?

이것은 JavaScript 함수에서 무엇을 의미합니까?

清浅
清浅원래의
2018-11-27 10:46:432443검색

오늘은 JavaScript에 대한 중요한 지식 포인트를 공유하겠습니다. 이는 특정 참조 가치가 있으며 모든 사람의 학습에 도움이 되기를 바랍니다.

this 키워드를 배울 때 함수에서 무엇을 의미하는지, 어떻게 사용하는지 알지 못하는 경우가 많습니다. 오늘은 이에 대한 지식을 기사

에서 자세히 소개하겠습니다. : JavaScript Tutorial]

Context 및 이 키워드

JavaScript에서 함수에는 자체 실행 컨텍스트가 있으므로 함수의 실행 컨텍스트는 함수가 선언되는 방식이 아니라는 점에 특히 주의하세요. . 함수의 기능에 관한 것이 아니라 코드에서 이를 호출하는 방법에 관한 것입니다. 이 실행 컨텍스트를 호출할 때 사용합니다. 함수 내에서 이것이 액세스되면 실행 컨텍스트가 실제로 액세스됩니다.

함수를 호출하는 방법은 이것과 같습니다

컨텍스트는 함수를 호출하는 방법에 따라 4가지 방법으로 호출할 수 있으므로 이 역시 4가지 포인트가 있습니다.

1. 기본 함수 호출

2. 암시적 바인딩이라고도 하는 함수를 호출하려면 컨텍스트 개체를 사용하세요.

3. call()을 사용하거나 명시적 바인딩이라고도 알려진 apply() 함수를 호출하세요.

4.bind() 메소드를 통한 바인딩

기본 함수 호출

기본 함수 호출은 함수를 호출하는 가장 간단한 방법입니다

예:

<script type="text/javascript">
	var name="张三";
	function student(){
		console.log(this.name);
	}
	student();
</script>

Image 1.jpg

이 예에서는 Student()를 볼 수 있습니다. 함수는 전역 범위에서 호출되므로 여기서는 전역 범위를 참조하므로 출력 결과는 ""张三""

암시적 바인딩

함수가 객체에 의해 "포함"되면 다음과 같이 말합니다. 함수의 this가 이 객체에 암묵적으로 바인딩되어 있다는 것

<script type="text/javascript">
var student={
	name:"张三",
	obj:function(){
		console.log(this.name)
	}
}
student.obj();
	</script>

Image 2.jpg

obj 함수가 객체에 배치되어 있지만 객체 내부에 정의되어 있다고 해서 외부와 다르지는 않습니다. this

명시적 바인딩

을 통해 학생 개체의 a 속성에 계속 액세스할 수 있습니다. call() 또는 apply() 메서드를 사용하여 함수를 호출할 수 있으며 해당 실행 컨텍스트는 개체에 명시적으로 바인딩됩니다. apply는 이것을

를 가리키도록 변경할 수 있습니다예: call() 또는 apply()가 사용되지 않는 경우

<script type="text/javascript">
var name="张三";
var obj = {
	name:"李四",
	fun:function(){
	console.log(this.name);}}
obj.fun();
</script>

Image 3.jpg

call()을 사용하여 이 점이 window

<script type="text/javascript">
var name="张三";
var obj = {
name:"李四",
fun:function(){
      onsole.log(this.name);}}
       obj.fun.call(window);
</script>

Image 1.jpg


bind( )

bind()가 함수를 생성할 것으로 결정됩니다. 함수 본문에 있는 이 개체의 값은 바인딩()에 전달된 첫 번째 매개 변수의 값에 바인딩됩니다. 실행할 수 있는 함수만 반환합니다.

<script type="text/javascript">
var a = {
	b : function(){
		var func = function(){
			console.log(this.c);
		}
		func.bind(this)();
	},
	c : &#39;Hello!&#39;
}
a.b();
	</script>


바인드 메서드를 통해 이를 c 개체의 콘텐츠로 지정합니다.

Image 4.jpg

요약: 위 기사에서 우리는 this를 호출하는 사람이 누구를 가리키는지 알 수 있습니다. 바인딩() 메소드는 이것의 포인터를 변경할 수 있습니다.



위 내용은 이것은 JavaScript 함수에서 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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