函数Empty(){}在哪里?

时间:2012-09-01 11:14:46

标签: javascript google-chrome

在Chrome中,

(function(){}).__proto__

function Empty() {}

所以我原本预计

new Function();

function Empty() {},而是function anonymous() {}

我在哪里可以找到function Empty() {}?是在Function还是Object

3 个答案:

答案 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