JavaScript 함수 선언
-
18-09-2019 - |
문제
JavaScript 코드 스 니펫은 어떤 종류의 함수 선언 아래에 제공됩니까? 그렇지 않다면 누군가가 무엇인지에 대한 개요를 알려주십시오.
some_func = function(value) {
// some code here
}
그리고
show:function(value){
// some code here
}
해결책
첫 번째는 단순히 익명 함수를 생성하고 변수에 할당하는 것입니다. some_func
. 그래서 사용 some_func()
기능을 호출합니다.
두 번째는 객체 표기법의 일부 여야합니다.
var obj = {
show:function(value){
// some code here
}
};
따라서 obj.show ()가 함수를 호출합니다
두 경우 모두 익명 기능을 만들고 있습니다. 그러나 첫 번째 경우에는 단순히 변수에 할당하는 것입니다. 두 번째 경우에는 객체의 구성원으로 할당합니다 (아마도 많은 것 중에서도).
다른 팁
거기 있습니다 여섯 기능을 만들 수있는 방법/컨텍스트 :
1) 표준 선언 표기법 (C 배경을 가진 사람들에게 가장 친숙 함)
function foo() {}
나머지는 기능입니다 표현:
2) 문자 그대로의 방법으로
var obj = {
foo: function() {}
};
3) 인스턴스화 된 객체의 방법으로 (매번 생성 new
자극)
var Obj = function() {
this.foo = function() {};
};
4) 프로토 타입의 방법으로 (몇 번의 횟수에 관계없이 한 번만 생성 new
IS 실행)
var Obj = function() {};
Obj.prototype.foo = function() {};
5) 참조가있는 익명 함수 ( #1과 동일한 효과) *
var foo = function() {};
6) 즉시 실행 된 익명 기능 (완전히 익명)으로
(function() {})();
*이 진술을 보면 결과를 고려합니다. 따라서, 나는 이것을 익명으로 간주하지 않습니다. 따라서 참조는 즉시 함수에 대한 참조가 생성되어 더 이상 익명이 아니기 때문입니다. 그러나 그것은 대부분의 사람들과 동일합니다.
첫 번째는 익명 함수가 지정된 로컬 (또는 글로벌) 변수입니다.
var some_name = function(val) {};
some_name(42);
두 번째는 익명 함수가 할당 된 일부 객체 (또는 그 앞에 레이블이있는 함수)의 속성입니다.
var obj = {
show: function(val) {},
// ...
};
obj.show(42);
함수는 JavaScript의 일류 시민이므로 변수에 할당하고 변수에서 해당 함수를 호출 할 수 있습니다.
해당 함수가 할당 될 변수 이외의 다른 이름으로 함수를 선언 할 수도 있습니다. 예를 들어 재귀 방법을 정의하려면 다음과 같이 편리합니다.
var obj = {
show: function(val) {
if (val > 0) { this.show(val-1); }
print(val);
}
};
당신은 쓸 수 있습니다 :
var obj = {
show: function f(val) {
if (val > 0) { f(val-1); }
print(val);
}
};
그것을하는 한 가지 방법 :
var some_func = function(value) {
// some code here
}
또 다른 방법:
function some_funct() {
}
또 다른 방법 :
var some_object={};
some_object["some_func"] = function() {};
또는:
var some_object={};
some_object.some_func = function() {};
다시 말해, 그들은 JS에서 함수를 선언하는 여러 가지 방법입니다.
두 번째 예제는 정확하지 않습니다.
첫 번째는 변수에 할당 된 함수 선언입니다 (최소한 변수 유형 선언이 먼저 누락 되었음에도 불구하고 두 번째는 객체 선언과 관련이있을 것입니다.
그것들은 익명 기능이라고합니다. 당신은 그들에 대한 자세한 내용을 여기에서 읽을 수 있습니다.
http://www.ejball.com/edatwork/2005/03/28/javaScriptanonymousfunctions.aspx
첫 번째 예제는 글로벌 변수를 만듭니다 (해당 이름의 로컬 변수가 아직 존재하지 않는 경우) some_func
, 그리고 그것에 함수를 할당하므로 some_func()
호출 될 수 있습니다.
두 번째 예는 객체 내부의 함수 선언입니다. 함수를 값의 값으로 할당합니다 show
객체의 속성 :
var myObj = {
propString: "abc",
propFunction: function() { alert('test'); }
};
myObj.propFunction();
첫번째...
some_func = function(value) {
// some code here
}
변수를 선언하고 할당합니다 익명 기능 그것에, 그것은 ...
function some_func (value) {
// some code here
}
두 번째는 이렇게 보일 것입니다 ...
obj = {
show:function(value){
// some code here
}
}
// obj.show(value)
그리고 동등한 ...
//pseudo code
class MyClass {
function show (value) {
// some code here
}
}
obj = new MyClass(); // obj.show(value)
건배