無名関数式/アロー関数の検証

JavaScript

'use strict';
let fn1 = () => console.log('"'+fn1.name+'"', fn1);
let fn2 = function () { console.log('"'+fn2.name+'"', fn2); }

fn1();  // "" function () => console.log('"'+fn1.name+'"', fn1)
fn2();  // "" function () { console.log('"'+fn2.name+'"', fn2); }

console.info('clone function');

let cfn1 = fn1;
let cfn2 = fn2;
fn1 = fn2 = null;

console.log('"'+cfn1.name+'"', cfn1.toString());  // "" () => console.log('"'+fn1.name+'"', fn1)
console.log('"'+cfn2.name+'"', cfn2.toString());  // "" function () { console.log('"'+fn2.name+'"', fn2); }

cfn1(); // TypeError: Cannot read property 'name' of null
cfn2(); // TypeError: Cannot read property 'name' of null