object object什么意思_JavaScript中任何值的prototype到最后都是Object

9666e0f65d9607cd0b0f627a0f597569.png

这篇笔记延伸上一篇所提到的原型(prototype)的概念,说明了在JavaScript当中,所有的类型(字串、数值、Boolean值、函数、数组、对象)的prototype的最后都是object!

什么意思呢?

假设我们现在分别建立对象、函数和数组,直接上代码:

// Object 
var a =  { 
  name : 'miqilin' 
}

// function 
var  b  =  function ( ) { 
  console . log ( 'Hello' ) ; 
}

// Array 
var c =  [ 'A' , 'r' , 'r' , 'a' , 'y'] ;

// string 
var d =  'This is string' ;

// number 
var e =  2 ;

// boolean 
var f =  true ;

接着,我们会在Google Chrome 的console 视窗来分别检验这些类型的prototype。

对象(object)

我们可以看到a这个对象本身的prototype也是一个对象,在下去就没了(null),也就是Object → Object → null的过程。

d83b543fff620e529621bc75246dba30.png

而a.__proto__就是对象的原型,打开来看会发现里面有许多内置的方法。

ec4ca24c84c86f76cf54139323ed9405.png

如果我在console中输入a. ,则会出现对于对象而言内置的方法:

0591d70c325b7eb061a9e6d601f8bfea.png

由于a.__proto__仍然是一个对象,所以如果我输入a.__proto__.的话,会得到除了name一样对于对象可以使用的方法:

e5f8aedbbe0bb1753e73e43e23b232fb.png

函数(function)

接着我们来看看函数,根据上面同样的方法得出是function → function → object → null的过程,所以最后还是结束在object。

d54406808852b8e7d77f02a5fb849c40.png

如果我们想要看函数有哪些内置的方法可以用,我们可以输入b. 或b.__proto__. 就可以看到了,这里我们就可以看到我们常用的apply , bind ,和call。

9ef8436400a1e1fb30bb1a21aa6c34f6.png

数组(Array)

对于数组的话则是array → array → object → null的过程。

27359ee615e4690e66c2451c39b55066.png

如果我们要看数组有哪些方法可以用,一样可以透过c. 或c.__proto__. 来检视:

ddbdf5e535d4e59c94753ab8e29abd4b.png

同样的方法也可以用来检视字符串、数字和Boolean值,有兴趣的通过chrome 来试试看吧!

如果觉得文章对你有些许帮助,欢迎在我的GitHub博客点赞和关注,感激不尽!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值