폐쇄와 귀속의 작용을 깊이 이해하다
폐쇄와 귀속
1. 변수의 작용역 복습
변수는 작용역에 따라 두 가지로 나뉘는데 그것이 바로 전역 변수와 국부 변수이다.
2. 클립이란 무엇인가
클립 (closure) 은 다른 함수 역할 영역에 접근할 수 있는 변수를 가리킨다.간단하게 이해하면 한 작용역은 다른 함수 내부의 국부 변수를 방문할 수 있다.
<script>
function fn1 (){ //fn1
var num = 10;
function fn2(){
console.log(num);// 10
}
fn2();
}
fn1();
</script>
3. 클로징의 역할
클로즈업은 변수의 작용 범위를 연장할 수 있다.
function fn() {
var num = 10;
function fun() {
console.log(num);
}
return fun;
}
var f = fn();
f();
4.귀환이란 무엇인가
귀속: 만약에 하나의 함수가 내부에서 그 자체를 호출할 수 있다면 이 함수는 귀속 함수이다.간단하게 이해: 함수 내부에서 스스로 자신을 호출한다. 이 함수는 바로 귀속 함수>주의: 귀속 함수의 작용은 순환 효과와 마찬가지로 귀속은'창고 넘침'오류(stack overflow)가 발생하기 쉬우므로 퇴출 조건return을 추가해야 한다.
5. 실천의 귀착
귀속을 이용하여 1~n의 곱셈을 구하다
// 1~n 1 * 2 * 3 * 4 * ..n
function fn(n) {
if (n == 1) { //
return 1;
}
return n * fn(n - 1);
}
console.log(fn(3));// 6
6. 피보나치 수열을 귀속적으로 구하기
// ( ) 1、1、2、3、5、8、13、21...
// n
// n (n-1 n-2) n
function fb(n) {
if (n === 1 || n === 2) {
return 1;
}
return fb(n - 1) + fb(n - 2);
}
console.log(fb(3));
7. 귀속 스트리밍 데이터 활용
// id ,
var data = [{
id: 1,
name: ' ',
goods: [{
id: 11,
gname: ' ',
goods: [{
id: 111,
gname: ' '
}, {
id: 112,
gname: ' '
},
]
}, {
id: 12,
gname: ' '
}]
}, {
id: 2,
name: ' '
}];
//1. forEach
function getID(json, id) {
var o = {};
json.forEach(function(item) {
// console.log(item); // 2
if (item.id == id) {
// console.log(item);
o = item;
return o;
// 2. 11 12
// goods 0
} else if (item.goods && item.goods.length > 0) {
o = getID(item.goods, id);
}
});
return o;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.