1

我真的很想知道函数和函数之间的关系..

我读了那篇文章“函数继承函数的方法”,所以函数可以使用apply、bind、call等方法

所以我使用下面的代码检查了控制台。

function test(){} // statement
test.__proto__ // function(){[native code]}

啊..如果“函数继承函数的方法”为真,
为什么结果函数(){[原生代码]},而不是函数函数(){[原生代码]}?

我也检查过函数测试的构造函数是函数函数,甚至让我感到困惑..

它太奇怪了..需要一些帮助..

4

3 回答 3

2

a.__proto__是原型。

a.__proto__.constructorFunction

function a() { }
console.log(a.__proto__);
console.log(a.__proto__ === Function);

console.log(a.__proto__.constructor);
console.log(a.__proto__.constructor === Function);

a.__proto__几乎是一个用于初始化的匿名函数。

于 2017-07-13T17:49:48.317 回答
1

test使用构造函数创建Functiontest__proto__.constructor将返回什么

测试的原型是function () { [native code] }从哪里继承的(什么test.__proto__),这就是为什么你可以访问 test.<some property name>谁的实际属性function () { [native code] }

于 2017-07-13T18:00:51.147 回答
0

function test() {}new Function(),输出function ...和不在控制台Function ...中,所以它仍然是一致的。他们这样做是一个历史原因,它更多地反映了您通常在源代码中看到的内容。

console.log(new Function() );
console.log(function test(){} );

于 2017-07-13T17:49:01.710 回答