本人在学习原型链的时候遇到一些困惑如下:
在一些博客(比如阮一峰的博客中), 是这么说的:
JavaScript
原生提供Object
对象, 所有其他对象都继承自Object
对象,即那些对象都是Object
的实例
这里我就感到困惑了, 根据我的理解,Object
难道不应该是一个构造函数么? 因为比如说任何一个实例对象都有.valueOf
这个方法, 实际上是引用的Object.prototype
这个原型对象里面的方法
而且当我在终端中输入typeof(Object)
返回的是"function"
, 说明Object
应该是一个构造函数, 真正的对象应该是Object.prototype
吧
但是似乎又不完全是这样, Object
有自己的静态方法, 就是直接定义在自身的方法, 比如Object.keys()
, 所以说构造函数也是对象? 也是有可以有自己的方法和属性?
另外又做了一个测试:
var F = function() {} F.__proto__ === Function.prototype // true
对于这个问题到底该如何理解, 本人刚刚学习javascript
, 学习了这些概念以后开始有点糊涂, 希望各位前辈能给出一个清晰的解答, 谢谢!
阿晨1998
慕妹3146593
一只名叫tom的猫
慕沐林林
相关分类