在Chrome中,
(function(){}).__proto__
是
function Empty() {}
所以我原本预计
new Function();
为function Empty() {}
,而是function anonymous() {}
。
我在哪里可以找到function Empty() {}
?是在Function
还是Object
?
答案 0 :(得分:6)
空函数对象(名称为Empty
)是Function
的原型。
Function.prototype.toString() === "function Empty() {}"
Object.getPrototypeOf(new Function()).toString() === "function Empty() {}"
答案 1 :(得分:6)
这些名称并不意味着您可以使用这些标识符访问它们。
对于函数的原型,名称为set at startup。该函数已设置名称,但除了.name
和.toString()
公开之外,它实际上并没有任何其他用途。
对于new Function()
实例,名称仅为printed for .toString()
。所以.name
仍然是空字符串。同样,它没有多大用处。
答案 2 :(得分:2)
Empty是Function原型的名称。来自Chrome控制台:
dir(Function)
function Function() { [native code] }
arguments: null
caller: null
length: 1
name: "Function"
prototype: function Empty() {}
__proto__: function Empty() {}
apply: function apply() { [native code] }
arguments: null
bind: function bind() { [native code] }
call: function call() { [native code] }
caller: null
constructor: function Function() { [native code] }
length: 0
name: "Empty"
toString: function toString() { [native code] }
__proto__: Object