Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Объявить такую функцию можно двумя, по сути, эквивалентными способами.На самом деле, способов существенно больше. Правда, использовать их я бы не советовал.
+function(){console.log(5)}() // подставьте свой любимый оператор
1,function(){console.log(5)}() // подставьте своё любимое число, строку или ещё какое-нибудь выражение
[function(){console.log(5)}()]
function fnc(){} // FunctionDeclaration
fnc = function(){} // FunctionExpression
Отсюда же получаем, что следующая запись вполне корректнаfnc = function(){return 5}()
return fn.apply( this, args );
var factorial = function (n) {
return n === 1 ? 1 : factorial(n - 1) * n;
};
function factorial(n) {
return n === 1 ? 1 : factorial(n - 1) * n;
};
var realFactorial = factorial;
factorial = function (n) {
throw 'please use realFactorial instead';
};
var factorial = function factorial (n) {
return n === 1 ? 1 : factorial(n - 1) * n;
};
var factorial = function f (n) {
return n === 1 ? 1 : f(n - 1) * n;
};
var saySomethingClever;
(function(){
var appleTest = /Apple/i;
var googleTest = /Google/i;
if( appleTest.test(navigator.vendor) )
saySomethingClever = function(){ console.log("I love apples <3"); }
else if( googleTest.test(navigator.vendor) )
saySomethingClever = function(){ console.log("android is everything for me <3"); }
else saySomethingClever = function(){ console.log("i love this unpopular corporation too"); }
})();
saySomethingClever();
var saySomethingClever = (function(){
var appleTest = /Apple/i;
var googleTest = /Google/i;
if( appleTest.test(navigator.vendor) )
return function(){ console.log("I love apples <3"); }
else if( googleTest.test(navigator.vendor) )
return function(){ console.log("android is everything for me <3"); }
else
return function(){ console.log("i love this unpopular corporation too"); }
})();
saySomethingClever();
var saySomethingClever = (function(){
var appleTest = /Apple/i,
googleTest = /Google/i;
return appleTest.test(navigator.vendor) ? function(){ console.log("I love apples <3") } :
googleTest.test(navigator.vendor) ? function(){ console.log("android is everything for me <3") } :
function(){ console.log("i love this unpopular corporation too") } ;
})();
saySomethingClever();
var saySomethingClever = (function(){
var appleTest = /Apple/i,
googleTest = /Google/i,
log = function (message) {
return function(){ console.log(message) };
};
return appleTest.test(navigator.vendor) ? log("I love apples <3"):
googleTest.test(navigator.vendor) ? log("android is everything for me <3"):
log("i love this unpopular corporation too");
})();
saySomethingClever();
var saySomethingClever = (function(){
var appleTest = /Apple/i,
googleTest = /Google/i;
return appleTest.test(navigator.vendor) ?
function(){ console.log("I love apples <3") } :
googleTest.test(navigator.vendor) ?
function(){ console.log("android is everything for me <3") } :
function(){ console.log("i love this unpopular corporation too") } ;
})();
saySomethingClever();
console.log( "sample b" );
b();
function b() { console.log(1); }
ReferenceError: b is not definedChrome скушал.
/** usage: * yield(N) -- (re)start yielding song * yield() -- continue/loop yielding */ var yield = function(more) { more = more||Math.ceil(Math.random()*3); (function(jack){ yield = function(nomore) { if( nomore || !more--) return (yield = jack)(); return "No more!"; } })(yield); return "Hit the road, Jack! And don't you come back!"; }
var f = function() { console.log(1); }
f();
function f(){ console.log(2); }
f();
JavaScript для чайников. Всё что вы хотели знать о функциях но боялись спросить