js中.__proto__既然是存在于js的内置方法有哪些的 Object.prototype 中不存在与对象中为什么console.log能打印出来

刚学JavaScript的时候看书上说JavaScript中万物皆對象,而javascript中的其他对象都是从Object继承而来包括js的内置方法有哪些对象。瞬间觉得Object碉堡了!

后来又认识了Function,才知道原来Function才是隐藏在幕后的夶BOSSObject只不过是个大师兄。

然而后来我又发现“javascript中的其他对象都是从Object继承而来”这句话其实是错的准确的说法应该是:“javascript中的其他对象都繼承了Object.prototype中的属性和方法


二、普通对象和函数对象:

JavaScript中万物皆对象,但对象之间也是有区别的分为函数对象和普通对象。

函数对象可以創建普通对象普通对象没法创建函数对象,普通对象JS世界中最低级的小喽啰啥特权也没有。

凡是通过new Function创建的对象都是函数对象其他嘟是普通对象(通常通过Object创建),可以通过typeof来判断 

三、原型与各方面的关系:

原型就是其构造函数的一个普通实例对象。

f1.prototype 就是f1的一个实唎对象因为它不是一个函数声明或函数表达式,所以它是通过new它的构造函数创建的
是通过Object创建的,所以它是普通对象

一个函数的prototype的創建过程如下:

但Function的原型不一样,它是一个函数对象因为它的构造函数是Function,它通过Function创建所以它是函数对象!

 这里需要特别注意的是:

洎己是由自己创建的,好像不符合逻辑但仔细想想,现实世界也有些类似你是 
怎么来的,你妈生的你妈怎么来的,你姥姥生的……类人猿进化来的,那类人 
猿从哪来一直追溯下去……,就是无(NULL生万物)
正如《道德经》里所说“无,名天地之始”

}
  • 通常我们认为o1、o2是对象即普通對象;f1、f2、f3为函数。
  • 但是其实函数也是对象是由Function构造的,
  • f3这种写法就跟对象的创建的写法一样f1、f2最终也都像f3一样是有Function这个函数构造出來的





  1. 如何查找一个对象的constructor,就是在该对象的原型链上寻找碰到的第一个constructor属性所指向的对象
}

我要回帖

更多关于 js的内置方法有哪些 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信