>  기사  >  웹 프론트엔드  >  암시적 매개변수 인수와 관련된 JS 함수 호출 및 문제

암시적 매개변수 인수와 관련된 JS 함수 호출 및 문제

一个新手
一个新手원래의
2017-09-28 09:21:401388검색

##1. 다양한 함수 호출 방법:
####1. 함수 호출
####2. 객체 지향 프로그래밍 지원
## ##3. 새 객체를 생성하기 위해 생성자를 호출합니다.
####4. apply() 또는 call() 메서드를 통해 호출합니다. 이 메서드는 상대적으로 가장 복잡합니다.

## 2. 기능 각 호출은 두 개의 암시적 매개변수를 전달하고 함수의 범위에 존재합니다: 인수 및 이
###함수 매개변수와 형식 매개변수 간의 불일치를 처리하는 방법:
####1. 실제 매개변수>형식 매개변수-->일부 초과. 실제 매개변수는 할당되지 않습니다.
####2. 실제 매개변수 해당 형식 매개변수가 정의되지 않은 상태로 할당됩니다

##3. 함수 컨텍스트: 함수에 따라 다릅니다. 호출 방법(4가지 호출 방법). ####2. 인수: 모든 매개변수의 모음이며 인수[2] 등을 사용하여 얻을 수 있는 길이 속성을 가지고 있지만 인수는 배열이 아니며 배열이 없는 메서드입니다. 3. this: 함수 호출과 암시적으로 연결된 개체를 함수 컨텍스트라고 합니다.


## 4:

####1 "함수로 호출": 위의 첫 번째 메서드를 나타냅니다. 세 가지 유형예: function test(a,b){}/var test = function(a,b){} 이때 함수 ​​컨텍스트는 window, 즉 * *this==window**

#### 2. "메소드로서" 호출: 함수를 객체에 할당하고 해당 함수를 참조하는 이 속성을 사용하는 경우
I. 메소드 본문에서 this로 호출됩니다

var o = {};
o.test = function(){};
o.test();

이때 함수 ​​컨텍스트는 객체 o, 즉 **this==o**

####3입니다. " 호출: 함수 선언과 동일, 함수 호출 방법과 다름, 함수 호출 전에 new 키워드를 사용
function test(){return this};

new test();


### 특수 기능 생성자:
####I. 새로운 빈 객체를 만듭니다

####II. 생성자의 객체가 이 객체이므로 생성자의 컨텍스트가 됩니다

####III. 명시적인 반환 값이 없으면 새로 생성된 개체가 생성자의 반환 값으로 반환됩니다

function Ninja(){
this.skulk = function(){return this};
//无显式返回,故返回this===o
}===function Ninja(){
var o = {};
o.skulk = function(){return this;};
return o;
}
var ninja1 = new Ninja();
var ninja2 = new Ninja();
ninja1.skulk === ninja1;
ninja2.skulk === ninja2;

#### apply() 및 call() 메서드: 함수 컨텍스트로 모든 개체를 명시적으로 지정합니다.
apply()에는 두 개의 매개 변수가 필요합니다. : 1. 함수 컨텍스트로서의 객체 2. 함수 매개변수로 구성된 배열

call()에도 두 개의 매개변수가 필요합니다. 차이점은 두 번째 매개변수가 매개변수 목록이라는 점입니다


##모든 요소를 ​​컨텍스트로 사용할 수 있습니다. 적용() 및 호출()

위 내용은 암시적 매개변수 인수와 관련된 JS 함수 호출 및 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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