함수 컨텍스트
Java나 C/C++와 같은 언어에서 메소드(함수)는 객체에 부착되어만 존재할 수 있으며 독립적이지 않습니다. JavaScript에서 함수는 개체이며 다른 개체의 일부가 아닙니다. 특히 함수형 JavaScript를 이해하려면 함수를 일급으로 간주합니다.
함수의 컨텍스트는 변경될 수 있으므로 함수 내에서도 변경될 수 있습니다. 함수는 한 개체의 메서드로 사용될 수도 있고 동시에 다른 개체의 메서드로 사용될 수도 있습니다. 독립적인. 함수의 컨텍스트는 함수 객체의 호출 또는 적용 함수를 통해 수정할 수 있습니다.
call 및 Apply
call 및 Apply는 일반적으로 함수의 this 포인터가 대체됩니다. 첫 번째 매개변수 호출 또는 적용을 사용하여 JavaScript 객체 및 JSON 시작하기의 예를 살펴보겠습니다.
//定义一个人,名字为jack var jack = { name : "jack", age : 26 } //定义另一个人,名字为abruzzi var abruzzi = { name : "abruzzi", age : 26 } //定义一个全局的函数对象 function printName(){ return this.name; } //设置printName的上下文为jack, 此时的this为jack print(printName.call(jack)); //设置printName的上下文为abruzzi,此时的this为abruzzi print(printName.call(abruzzi)); print(printName.apply(jack)); print(printName.apply(abruzzi)); 只有一个参数的时候call和apply的使用方式是一样的,如果有多个参数: setName.apply(jack, ["Jack Sept."]); print(printName.apply(jack)); setName.call(abruzzi, "John Abruzzi"); print(printName.call(abruzzi));
결과는 다음과 같습니다.
Jack Sept. John Abruzzi apply的第二个参数为一个函数需要的参数组成的一个数组,而call则需要跟若干个参数,参数之间以逗号(,)隔开即可。
위 내용은 JavaScript 함수의 컨텍스트는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!