原型规则的第三点

原型规则的第三点

http://img1.sycdn.imooc.com//climg/5edddbaa09a2096506830121.jpg

这里说的是函数,不包括数组和对象?那后面2-4小节的2:57,讲原型链的时候,Foo.prototype是Object,Object是对象不是函数吧?但是它不也有prototype属性的吗?只是Object.prototype为null而已吧?

我理解的有哪里出问题了的么?还是说Object是一个特例,它的prototype为null,所以对于这一条规则也就是特例?严格来说的话,这条规则适用于所有的函数以及Object?只不过Object的prototype属性值不是一个普通的对象而是null?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,经过与讲师沟通,之前解答的没有问题。

1、属性值是一个普通对象,指的是{}字面量这种形式,也就是前面输出的 

http://img1.sycdn.imooc.com//climg/5edf0036091fb1ca05890514.jpg

2、Object 是构造函数,普通对象是指 typeof 等于 'object' 的变量,两者不是一回事儿

祝学习愉快!

好帮手慕星星 2020-06-08 19:17:27

同学你好,问题解答如下:

1、Object为构造函数,如果想要得到测试结果为object,需要是数组,普通对象或者null

http://img1.sycdn.imooc.com//climg/5ede1dd309ba1add02070172.jpg

2、老师说的引用类型中的Object,直接的输出的时候这里

http://img1.sycdn.imooc.com//climg/5ede1e12098f728905450119.jpg

课程中说属性值是一个普通的对象,可能不太严谨,这边与讲师沟通中,有结果后会立即通知的。

祝学习愉快!

  • 提问者 Aurora_Meteor #1
    这意思是你们也不确定视频里老师讲的那个普通对象到底指的是什么吗?
    2020-06-08 19:21:48
好帮手慕星星 2020-06-08 15:41:52

同学你好,问题解答如下:

1、函数不包括数组和对象

2、Foo是函数,它有prototype属性,属性值是一个对象类型

http://img1.sycdn.imooc.com//climg/5eddea0e0933df1104610194.jpg

http://img1.sycdn.imooc.com//climg/5eddea3f090cfc8c05940330.jpg

3、Object 构造函数创建一个对象包装器。Object是一个构造函数,可以检测下类型

http://img1.sycdn.imooc.com//climg/5eddea6d0911e93402290058.jpg

函数才有prototype属性。通过new Object()能创建对象,和自定义的构造函数实例化是一样的。

Object的prototype属性是有值的

http://img1.sycdn.imooc.com//climg/5eddead70948574203650023.jpg

http://img1.sycdn.imooc.com//climg/5eddeadf09657f4210870039.jpg

也就是这里

http://img1.sycdn.imooc.com//climg/5eddeb1e0972290111380525.jpghttp://img1.sycdn.imooc.com//climg/5eddeb4109496eb604700056.jpg

也就是课程中这个关系图

http://img1.sycdn.imooc.com//climg/5eddeb6e09ae63df14500571.jpg

Object有prototype属性值,但是再往下就没有了(已经是底层了),所以再通过__proto__ 属性获取的时候,返回值为null 。

自己再测试理解下,祝学习愉快!

  • 提问者 Aurora_Meteor #1
    1、这里说Object是构造函数,然后我在另一个问题中问原型规则第二条的【普通的对象】是指什么,老师说就是引用类型中的Object,那么这两个地方的Object是说的同一个东西吗?Object即是引用类型中的对象,又是一个函数(构造函数)? 2、之前说使用typeof,对象、数组、null都会得到object,而这里使用typeof Object的结果是function,那得到的结果要是object的话,测试的必须是一个具体的对象或者数组才行吗?Object不是一个具体的对象所以得到的不是object?
    2020-06-08 18:07:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师