我真的很想知道函数和函数之间的关系。
我读过文章“函数继承函数的方法”,所以函数可以使用apply,bind,call等方法
所以我使用下面的代码检查了控制台。
function test(){} // statement
test.__proto__ // function(){[native code]}
啊..如果“函数继承函数的方法”为真,
为什么结果是function(){[native code]},而不是函数Function(){[native code]}?
我也检查过函数测试的构造函数是函数Function,
甚至让我感到困惑..
它太奇怪了......需要一些帮助..
答案 0 :(得分:2)
a.__proto__
是原型。
a.__proto__.constructor
是Function
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 ...
,所以它仍然是一致的。他们这样做是一个历史原因,它反映了你通常在源代码中看到的内容。
console.log(new Function() );
console.log(function test(){} );
&#13;