1、 主要有以下三点:
- 函数(或构造函数)身上才有 prototype (prototype名字叫原型,原型是一个对象);
- 而其他任何通过构造函数实例化出来的对象(不包括null、undefined)身上都有 proto(__proto__是隐式原型,隐式原型也一个对象)
- 实例化对象的__proto__ 就是 构造函数的 prototype (===关系)
附:undefind 和 null 既没有prototype也没有 proto ,因为它俩不是函数,也不是函数实例化出来的对象
具体说明如下:
- 函数(或构造函数)身上才有 prototype (prototype名字叫原型,原型是一个对象);
例如:String、Number、Boolean、Array、Object
- 而其他任何通过构造函数实例化出来的对象(不包括null、undefined)身上都有 proto(__proto__是隐式原型,隐式原型也一个对象)
例如:
‘a’ 是通过String函数实例化出来的对象(这里包括以下说的对象不是Objcet数据类型)
4 是通过Number函数实例化出来的对象
true是通过Boolean函数实例化出来的对象
[1,2,3]是通过Array函数实例化出来的对象
{}是通过Objec函数实例化出来的对象
- 实例化对象的__proto__ 就是 构造函数的 prototype
例如:
‘a’.proto === String.protptype //true
true.proto === Boolean.prototype //true
最后
以上就是端庄篮球最近收集整理的关于prototype和__proto__ 的关系的全部内容,更多相关prototype和__proto__内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复