首页 新闻 会员 周边

Function原型问题

0
悬赏园豆:10 [已解决问题] 解决于 2019-08-12 16:42

console.log(Function.prototype)

console.log(Object.prototype)

console.log((Function.prototype).hasOwnProperty("toString"))

console.log(Object.prototype.hasOwnProperty("toString"))

这四行代码在控制台上分别输出这些:

ƒ () { [native code] }

{constructor: ƒ, defineGetter: ƒ, defineSetter: ƒ, hasOwnProperty: ƒ, lookupGetter: ƒ, …}

true

true

为什么Function.prototype里面明明没有toString方法,打印的却是true

a继续骄傲a的主页 a继续骄傲a | 初学一级 | 园豆:194
提问于:2019-08-10 14:14
< >
分享
最佳答案
0

这样清楚了么?

收获园豆:10
Rejiu泡泡糖 | 小虾三级 |园豆:632 | 2019-08-12 09:29

不是啊,你打印的是Function.prototype.__proto__ 吧,Function.prototype.__proto__ ==Object.prototype 这样他肯定会显示出来tostring方法的,但是现在是想知道Function.prototype为啥也能检测到tostring方法。。。

a继续骄傲a | 园豆:194 (初学一级) | 2019-08-12 09:37

@a继续骄傲a: 。。。。。。。。你代码里用过构造函数没?用过的话,就应该知道,哪怕是class extends也是这个意思,原型链上的东西,会一直追溯到Object下,如果还是没有,那就是没有,不然,只要是在这个链子上的,就可以找得到。

Rejiu泡泡糖 | 园豆:632 (小虾三级) | 2019-08-12 16:38

@女寝楼下卖瓜的泡泡糖: 嗯嗯嗯对,是,记起来了,,谢啦

a继续骄傲a | 园豆:194 (初学一级) | 2019-08-12 16:42

@a继续骄傲a: 没事,去啃啃原型链这块的东西就好了

Rejiu泡泡糖 | 园豆:632 (小虾三级) | 2019-08-12 16:51
其他回答(1)
0

我在浏览器控制台上调试,Function.prototype是有toString方法的。
Function.prototype.toString() 打印出:"function () { [native code] }"
Function.prototype.toString 打印出 ƒ toString() { [native code] }

欲穷 | 园豆:204 (菜鸟二级) | 2019-08-12 09:16

嗯我的也是,native code里面不是应该是空的么。。为啥还会有

支持(0) 反对(0) a继续骄傲a | 园豆:194 (初学一级) | 2019-08-12 09:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册