功能与功能的关系

时间:2017-07-13 17:42:30

标签: javascript function constructor prototype proto

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

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

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

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

啊..如果“函数继承函数的方法”为真,
为什么结果是function(){[native code]},而不是函数Function(){[native code]}?

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

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

3 个答案:

答案 0 :(得分: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__几乎是一个用于初始化的匿名函数。

答案 1 :(得分:1)

test是使用构造函数Function创建的,test__proto__.constructor将返回

测试原型是function () { [native code] }来自哪里继承(test.__proto__),这就是你能够访问的原因 test.<some property name>,其实际属性为function () { [native code] }

答案 2 :(得分:0)

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

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