function f() {}
var parent = Object.getPrototypeOf(f);
看看下面输出什么
console.log(f.name);
f是函数,f.name对应函数名,没什么说的,输出f
console.log(parent.name);
parent是f的原型对象,函数的原型对象还是函数,所以我理解上面代码相当于console.log((function() {}).name),输出空
console.log(typeof eval(f.name));
查看了一下帮助,eval只接收原始的字符串作为参数,比如eval('alert("gunsmoke")'),如果参数是字符串变量,则会原封不动的返回,于是eval(f.name)返回f,而f在前面已经定义了,是函数,所以输出function
console.log(typeof eval(parent.name));
前面已经知道parent.name返回空,但是输出为undefined,这个我也不太理解,看完原型对象后再回头看看.