不懂 什么呀 乱七八糟的
一.
1.f._proto_ ===Foo.prototype 这个懂
2.Foo.prototype.__proto_即 f._proto.__proto_为什么等于Object.prototype ?????
二.
1.function Foo() 等于 var Foo = new Function
Function.prototype等于Foo._proto_
2.var f = new Foo
f._proto_等于 Foo.prototype
3.为什么一个函数的原型上还可以再._proto_?
4.原型上的原型?
5.并且为什么函数原型上的隐式原型等于Object的显示原型?
正在回答 回答被采纳积分+1
其他的问题看不太懂, 但是第一个可以回答你。 就像老师那样, 将Function.prototype打印出来就知道了,JS就是这样设计的,应该没什么好说的。 之所以这样设计,是为了所有的对象都可以使用toString\valueOf诸如此类的方法(如果展开Object.prototype就可以看到这些方法)。
可以认为Object.prototype就是最顶级的抽象层(我这里指的抽象不要理解成计算机词汇)
如果实在难以理解, 可以看到Function.prototype其实就是一个对象, 那对象肯定不是无缘无故产生的,一定有他的来由,这个来由就默认是Object,也就是说Function默认使用Object构造函数来创造的,所以Function.prototype的__proto__指向的是Object.prototype。
同学你好,问题解答如下:
1、函数原型上的隐式原型等于Object的显示原型。例如
两个是相等的
记住这个原理就好。
2、看一下课程中的例子
第一个__proto__是通过prototype属性添加的。所以是再往下面找__proto__就是相等的
3、 f._proto_等于 Foo.prototype这个应该好理解,函数通过prototype属性添加的内容,会显示在实例化对象的__proto__属性上。
4、创建函数的__proto__属性与Function函数的prototype相等,和上面回答的第三个是一样的,通过new Function()实例化出来的
自己再测试理解下,祝学习愉快!
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星