45

Co ten kod również zawiera? Okrężnik Javascript dla oznaczania anonimowych funkcji?

queryString: function() { 

//some code 

} 

testowałem go w WebConsole (Firefox), ale to nie byłoby wykonać, więc myślę, że nie jest równoznaczne z function queryString() {}.

Co to dokładnie jest?

+0

powinno być: queryString = –

+4

używane do definiowania funkcji wewnątrz obiektów lub klas, więc myślę, że wziąłeś go poza zasięg obiektu. – Dampsquid

Odpowiedz

57

Brakuje tam jakiś kod, ale zakładam swoją część deklaracji obiektu tak:

var obj = { 
    queryString: function() { 
    //some code 
    } 
}; 
obj.queryString(); 

Przypisuje funkcję jako właściwość obiektu dosłownym. Byłoby to równoznaczne z:

var obj = {}; 
obj.queryString = function() { ... }; 
obj.queryString(); 

Ogólnie, składnia dosłowne obiekt wygląda tak:

{ key: value, otherKey: otherValue }; 

Więc powód ten nie działa w konsoli jest to, że nie został ujęty w {} znaków, oznaczających literał obiektu. I ta składnia jest ważna TYLKO w literale obiektu.

4

Obiekt : służy do definiowania obiektu i jego właściwości.

var obj = { 
    queryString: function() { 
     //some code 
    } 
} 

Teraz twoja funkcja to obj.queryString.

9

Jest to prawdopodobnie wewnątrz deklaracji mapa/obiektów tak:

var obj = { 
    queryString: function() { 
     alert('here'); 
    }, 
    eggs: function() { 
     alert('another function'); 
    } 
}; 

obj.queryString(); 
+0

To jest jak własność tego obiektu :) Dziękuję! – knownasilya

1

Co

queryString: function() { 

//some code 

} 

Oznacza to można użyć kwerendy(), aby wywołać funkcję, która się odnosi. Odwołania tego rodzaju są na ogół używane, jeśli chcesz zdefiniować klasę (lub pseudo-klasę; P) w javascript. Coś takiego,

var application= { namespace: {} }; 

application.namespace.class_name = function(){ 

    function constructor(){ 
    return { 
    exposed_property1 : property1, 
    exposed_property2 : property2, 
    ... 
    ... 
    } 
    } 
    //Write property/functions that you want to expose. 
    // Write rest of the function that you want private as function private(){} 
}; 

Więc teraz w anyother części kodu można tworzyć obiekty do CLASS_NAME i wykorzystać go do uzyskania dostępu do property1, Property2 itd

3

To etykietę https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label

var i, j; 

loop1: 
for (i = 0; i < 3; i++) {  //The first for statement is labeled "loop1" 
    loop2: 
    for (j = 0; j < 3; j++) { //The second for statement is labeled "loop2" 
     if (i == 1 && j == 1) { 
     continue loop1; 
     } 
     console.log("i = " + i + ", j = " + j); 
    } 
} 

// Output is: 
// "i = 0, j = 0" 
// "i = 0, j = 1" 
// "i = 0, j = 2" 
// "i = 1, j = 0" 
// "i = 2, j = 0" 
// "i = 2, j = 1" 
// "i = 2, j = 2" 
// Notice how it skips both "i = 1, j = 1" and "i = 1, j = 2" 
Powiązane problemy