자동 실행 함수
2726 단어 함수
function a(){
alert("a")
}
var b = function(){
alert("b")
}
그들 둘은 무엇이 다릅니까?책을 펼치면 저자는 전자는 함수 성명이고 후자는 함수 표현식이라고 알려준다.함수 성명은 일종의 성명으로서 당연히 사전 번역 계급에서 동작(성명 앞당김)을 할 수 있지만 함수 표현식은 할 수 없다.또 다른 차이점은 함수 성명은 괄호를 직접 붙여서 실행할 수 없다는 것이다.세 번째 차이점은 표현식은 계속 세분화할 수 있다. 표현식은 상량, 변수, 조작부호, 함수 등을 조합하여 만든 것이다. 계산 후에 결과 값을 되돌려주고 적어도 undefined를 되돌려준다.
function a (){
alert("a")
}();//
var b = function(){
alert("b")
}();
(function foo(){}); // :
var bar = function foo(){}; // ,
new function bar(){}; // , New
function 외투에 괄호 한 쌍 (그룹 조작부호) 을 주면 틀리지 않습니다. 괄호는 표현식이고 표현식이면 되돌아오는 값이 있기 때문에 뒤에 괄호를 붙여서 실행할 수 있습니다.
(function a (){
alert("a")
})();//
(function a (){
alert("a")
})();//문제없다
실행 코드
그리고 함수명의 작용은 인용에 쓰이는 것을 알고 있습니다. 지금은 쓸모가 없습니다. 우리는 그것을 제거할 수 있습니까?
(function (){
alert(arguments.callee)
})();//
(function (){
alert(arguments.callee)
})();//자신 팝업
실행 코드
이것을 알면 우리는 편리하게 자신에게 돌아갈 수 있다.만약 깊은 복사 함수를 만들면
var deepExtend = function(destination, source) {
for (var property in source) {
if (source[property] && source[property].constructor &&
source[property].constructor === Object) {
destination[property] = destination[property] || {};
arguments.callee(destination[property], source[property]);
} else {
destination[property] = source[property];
}
}
return destination;
};
또 다른 편리함에서도 우리가 어떻게 다양한 자동 집행 함수를 겸가로 대량 생산할 수 있는지를 계산했다.함수를 표현식으로 바꾸는 방법이 반드시 그룹 조작부호에 의존하는 것은 아니기 때문에, 우리는void조작부호,~조작부호,!조작부호...
void function(){
alert(" ");
}()
0, function(){
alert(" ");
}();
-function(){
alert(" ");
}();
+function(){
alert(" ");
}();
!function(){
alert(" ");
}();
~function(){
alert(" ");
}();
typeof function(){
alert(" ");
}();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[개발일지 3월 25일] [공통교육-웹기초] JavaScript 3/3 - 이고잉 강사→ topics2란 변수에 'html', 'css', 'js' 저장 → topics2.length(3) 미만까지 for문 반복 수행 → 실행 결과값을 loop1.html 본문에 출력 → <li>${topics[i]}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.