ES6 Anonymous Function Names
See what happens to various anonymous functions.
by _sir
HTML
<ol>
</ol>
JavaScript
// Something to output the content
function output(string) {
var li = document.createElement('li');
li.innerHTML = string;
document.querySelector('ol').append(li);
}
var fn1 = function(string, input) {
output(string + ' : ' + (typeof input) + " - \"" + input.name + '"');
}
fn1('fn1', fn1); // 1. fn1.name
// Already named once
var fn2 = fn1;
fn2('fn2', fn2); // 2. fn2.name
// What if we bind it?
var fn3 = fn2.bind(null);
fn3('fn3', fn3); // 3. Bound version of fn2
// fn4 returns a new anonymous function
var fn4 = function() {
return function() {};
};
fn1('fn4', fn4); // 4: fn4.name -- new function
// Assign the anonymous function returned by fn4.
var fn5 = fn4();
fn1('fn5', fn5) // 5. fn5.name
// Do parens make a difference?
var fn6 = (function(){});
fn1('fn6', fn6); // 6. fn6.name
// Trying something different - Pass a function
fn1('nofn', function(){}); // 7. no variable