JavaScript 학습 노트(4) - 함수 표현식
익명 함수
var functionName = function(arg0, arg1,arg2){
//do sth
};
역할: 블록 레벨 역할 영역 모방
// ( )
(function(){
//
})(); //
function output(count){
(function(){
for(var i = 0; i < count; i++ ){
console.log(i);
}
})();
console.log(i); //
}
차례로 돌아가다
function factorial(num){
if (num <= 1 ){
return 1;
} else {
return num * arguments.callee(num - 1); // arguments.callee
}
}
엄격한 모드에서 명명 함수 사용하기
var factorial = (function f(num){
if (num <= 1){
return 1;
} else {
return num * f(num - 1);
}
});
가방을 닫다
패키지는 다른 함수 작용역에 접근할 수 있는 변수를 가리키는 함수입니다.패키지를 만드는 데 흔히 볼 수 있는 방식은 한 함수 내부에서 다른 함수를 만드는 것이다.
함수 내부에서 다른 함수를 정의하면 패키지를 만듭니다.패키지를 닫으면 함수 내부를 포함하는 모든 변수에 액세스할 수 있습니다.
function createFunctions(){
var result = new Array();
for (var i = 0; i < 10; i++ ){
result[i] = function(){
return i;
};
}
return result;
}
var result = createFunctions();
result.forEach(function(item, index, array){
console.log(item());//10 10
});
모든 함수는 10을 되돌려줍니다. 모든 함수의 작용역 체인에createFunctions () 함수의 활동 대극이 저장되어 있기 때문에 같은 변수 i를 인용합니다.createFunction() 함수가 반환되면 변수 i의 값은 모두 10입니다.
익명 함수를 정의하고 이 익명 함수를 즉시 실행한 결과를 그룹에 부여하면 이 문제를 해결할 수 있습니다.
function createFunctions(){
var result = new Array();
for (var i = 0; i < 10; i++ ){
result[i] = function(num){
return function(){
return num;
};
}(i);
}
return result;
}
var result = createFunctions();
result.forEach(function(item, index, array){
console.log(item());//0~9
});
역할: 개인 변수에 접근하는 공유 방법을 만드는 데 사용됩니다.
특권 방법: 개인 변수와 개인 함수에 접근할 수 있는 공유 방법
//
var f = function(){
//
var privateVar = 10;
function privateFunction(){
return false;
}
//
var object = new CustomType();
// /
object.publicProperty = true;
object.publicMethod = function(){
privateVar++;
return privateFunction();
};
return object;
}();
this
몇 가지 특수한 상황에서,this의 값은 의외로 바뀔 수 있다.
var name = "The Window";
var object = {
name : "Object",
getName : function(){
return this.name;
}
};
object.getName(); // 'Object"
(object.getName)(); // "Object"
(object.getName = object.getName)(); //"The Window"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.