문제

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)

건배

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top