1. 함 수 는 기본
//
function a(){}
console.log(typeof window.a==="function"); // ture window
console.log(a.name==="a"); // true name ,
// b
var b = function (){};
console.log(typeof window.b==="function"); // ture
console.log(b.name==="b"); // true name undefined
// window
window.c=function(){};
console.log(typeof window.c==="function"); // true
console.log(c.name===""); // true name undefined
// outer , inner
function outer(){
console.log(typeof inner==="function"); // true inner inner
function inner(){}
console.log(typeof inner==="function"); // true inner inner
console.log(typeof window.inner==="undefined"); // true inner
}
// window
window.e=function d(){};
console.log(e.name==="d"); // true e , name
역할 영역 과 함수
함 수 는 그 역할 영역 범위 내 에서 미리 인 용 될 수 있 지만 변 수 는 안 됩 니 다.
함수 호출
//
function f(a,b,c){}
f(1); // ,1 a, b、c undefined
f(1,2,3,4,5); // ,1,2,3 a,b,c, 4,5
모든 함수 호출 은 두 개의 암시 적 인 파 라 메 터 를 전달 합 니 다: arguments 와 this.arguments 매개 변 수 는 함수 에 전 달 된 모든 매개 변수의 집합 으로 length 속성 을 가지 고 있 으 며 for 를 사용 하여 옮 겨 다 닐 수 있 지만 진정한 자바 script 배열 이 아니 라 배열 을 사용 할 수 없 는 방법 으로 배열 과 유사 한 구조 로 배열 의 일부 특성 만 가지 고 있 습 니 다.이 매개 변 수 는 이 함수 호출 과 암시 적 으로 연 결 된 대상 을 참조 하여 함수 컨 텍스트 라 고 합 니 다.this 의 지향 은 함수 의 호출 방식 에 의존 합 니 다. 호출 된 함수 가 같 더 라 도 호출 방식 이 다 르 면 this 의 지향 도 다 릅 니 다.
함수 "함수 로" 호출
함수 가 '함수 로' 호출 되 었 을 때 () 연산 자 를 사용 한 표현 식 을 표시 하고 함 수 를 대상 으로 하 는 속성 이 없습니다.예 를 들 면:
function a(){ return this }
a();
console.log(a()===window); // true
var b=function (){ return this };
b();
console.log(a()===window); // true
// , window , this window
함수 "방법 으로" 호출
함수 가 '방법 으로' 호출 될 때 함수 가 대상 에 게 할당 되 는 속성 을 나타 내 고 이 함수 의 속성 을 참조 하여 호출 합 니 다. 예 를 들 어:
var a={};
a.b=function (){ return this };
a.b(); // ,
console.log(a.b()===a); // ture
사실 함수 '함수 로 서' 의 호출 방식 은 '방법 으로 서' 호출 방식 의 특수 한 상황 이다.'함수 로 서' 호출 시 함 수 는 사실 window 대상 에 연결 되 어 있 으 며, window 대상 은 현재 함수 의 문맥 입 니 다.window 대상 호출 방식 을 생략 하고 편지 숫자 면 을 직접 사용 하여 호출 합 니 다.
대상 을 대상 으로 하 는 기본 개념 중 하 나 는 우리 가 임의의 방법 에서 this 의 지향 을 통 해 이 방법 이 속 한 대상 을 인용 할 수 있다 는 것 이다.
함수 가 구조 기로 호출 되다
function A(){ this.b=function(){ return this }}
var c=new A(); // new
console.log(c.b()===c); // true this 。
구조 기 호출 시 다음 과 같은 행위 가 발생 합 니 다.
일반적인 함수 와 방법 은 소문 자로 시작 하고 구조 기 함 수 는 대문자 로 시작한다.
apply () 와 call () 방법 으로 호출 합 니 다.
Javascript 에서 함수 도 대상 처럼 방법 과 속성 을 가 질 수 있 고 함수 마다 apply () 와 call () 방법 이 있 습 니 다.apply () 호출 함 수 를 통 해 두 개의 매개 변 수 를 입력 해 야 합 니 다. 하 나 는 함수 컨 텍스트 의 대상 이 고 다른 하 나 는 함수 매개 변수 로 구 성 된 배열 입 니 다.call () 방법 은 이와 유사 합 니 다. 유일 하 게 다른 것 은 call () 방법 이 함수 에 들 어 오 는 것 은 매개 변수 목록 입 니 다. 모든 매개 변 수 를 하나의 배열 로 들 어 오 는 것 이 아 닙 니 다.
function x(a,b){
this.y=a+b;
}
var a={};
var b={};
x.apply(a,[1,2]);
x.call(b,1,2);
console.log(a.y); // 3 x this a
console.log(b.y); // 3 x this b
자 바스 크 립 트 는 함수 식 프로 그래 밍 언어 로 함수 식 프로그램의 구성 요소 블록 이지 명령 식 문장 이 아니다.
//
function (list){
for(var i=0;i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.