Объявление функции JavaScript

Какой результат вы хотите? Если вы хотите, чтобы все целые числа находились в одном векторе, вы могли бы сделать что-то вроде:

std::ifstream input("input.txt");

std::vector<int> data(std::istream_iterator<int>(input),
                      std::istream_iterator<int>());

Это отбрасывает линейную структуру, хотя вы все вместе получаете данные. Один простой способ сохранить исходную структуру строки - прочитать строку с getline, инициализировать строковый поток с этой строкой, а затем поместить значения из этого строкового потока в вектор (и нажать это на обратной стороне вектора векторов int).

std::vector<std::vector<int> > data;
std::vector<int> temp;

std::string t;
while (std::getline(input, t)) {
    std::istringstream in(t);
    std::copy(std::istream_iterator<int>(in), 
              std::istream_iterator<int>(), 
              std::back_inserter(temp);
    data.push_back(temp);
}
27
задан Adrian 8 December 2009 в 12:33
поделиться

8 ответов

Первый - просто создает анонимную функцию и присваивает ее переменная some_func . Таким образом, использование some_func () вызовет функцию.

Второй должен быть частью объектной записи

var obj = {
  show:function(value){
    // some code here
  }
};

Итак, obj. show () вызовет функцию

В обоих случаях вы создаете анонимную функцию. Но в первом случае вы просто присваиваете его переменной. Тогда как во втором случае вы назначаете его как член объекта (возможно, среди многих других).

25
ответ дан 28 November 2019 в 04:05
поделиться

Они называются анонимными функциями; Вы можете прочитать больше о них здесь:

http://www.ejball.com/EdAtWork/2005/03/28/JavaScriptAnonymousFunctions.aspx

1
ответ дан Sarfraz 14 October 2019 в 12:22
поделиться

Один способ сделать это:

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.


Ваш второй пример неверен.

2
ответ дан jldupont 14 October 2019 в 12:22
поделиться

Первый ...

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)

Приветствия

0
ответ дан Ei Maung 14 October 2019 в 12:22
поделиться

Существует шесть способов / контекстов для создания функций:

1) Стандартная декларативная нотация (наиболее знакомая людям с фоном C)

function foo() {}

Все остальные - это функция выражения :

2) Как метод литерала объекта

var obj = {
    foo: function() {}
};

3) Как метод созданного объекта (создается каждый раз, когда выполняется new )

var Obj = function() {
    this.foo = function() {};
};

4) Как метод прототипа (создается только один раз, независимо от того, сколько раз new выполняется)

var Obj = function() {};
Obj.prototype.foo = function() {};

5) Как анонимная функция со ссылкой (тот же эффект, что и # 1) *

var foo = function() {};

6) Как немедленно выполняемая анонимная функция (полностью анонимная)

(function() {})();

* Когда я смотрю на этот оператор, я рассматриваю результат. Поэтому я не считаю их анонимными, потому что ссылка на функцию создается немедленно и поэтому больше не является анонимной. Но большинству людей все равно.

72
ответ дан 28 November 2019 в 04:05
поделиться

Первая - это локальная (или глобальная) переменная с назначенной анонимной функцией.

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);
    }
};
4
ответ дан 28 November 2019 в 04:05
поделиться

Первый - это объявление функции, присвоенное переменной (по крайней мере, так и должно быть, несмотря на то, что сначала отсутствует объявление типа переменной), второй, вероятно, связан с объектом декларация.

1
ответ дан 28 November 2019 в 04:05
поделиться

В первом примере создается глобальная переменная (если локальная переменная с таким именем еще не существует) с именем some_func и назначается ей функция, так что some_func () может быть вызван.

Второй пример - объявление функции внутри объекта. он назначает функцию как значение свойства show объекта:

var myObj = {
    propString: "abc",
    propFunction: function() { alert('test'); }
};

myObj.propFunction();
1
ответ дан 28 November 2019 в 04:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: