2016-03-30 2 views
-4

Я попытался написать этот код для функции самоосуществляющихся в Javascript:функция самоосуществляющегося Javascript

var ello = ("ello"); 
obj = (function myFunc(){var elem= []["H" + ello]["world"]["!" + "!"](); 
return elem; 
}, "as"); 

test = myFunc(); 

Но в последней строке я получил сообщение об ошибке:

  • MyFunc является не определено
+1

я могу Не скажите, что вы пытаетесь достичь, просто прочитав этот код. Вам нужно будет объяснить, что вы пытаетесь сделать, потому что сам код не похож. –

+3

Почему вы используете скобки вокруг объявления функции, это 'var elem = [] [" H "+ ello] [" world "] ["! " + "!"](); это просто вздор. – Yerken

+0

В коде довольно много ошибок и ненужных скобок, и функция не вызывает самозапускания. Как говорит Серджиу, вам нужно четко определить, какие шаги вы считаете кодом. – Rhumborl

ответ

3

Вы не создали функцию самозапускания.

Вы написали имя функции функции.

Именованные функциональные выражения генерируют переменную с тем же именем, что и они, только внутри своей области (в отличие от деклараций функций, которые генерируют переменную с тем же именем в области, в которой была объявлена ​​функция).

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

(Обратите внимание, что функция, которую вы написали бросят ошибки, когда вы это называете Это не имеет никакого смысла.).

+1

Ak. Я неправильно понял это как часть функции. – Quentin

0

Вот пример функции самопроверки вызывающем:

var ello = 'ello'; 
var result = function() { return 'H' + ello}() 
console.log(result) // outputs > Hello