js的Object对象有constructor, hasOwnProperty, isPrototyperOf, propertyIsEnumerable, toLocaleString, toString, valueOf方法.
typeof String === "function";
typeof Function === "function";
typeof Object === "function";
......
可以看出来,它们是函数类型
再看一下它们的prototype链
假设对象的原型属性名为(如: chrome) __proto__
1. 除Object外,所有的变量有__proto__属性,并且最后的__proto__一定是Object原型对象。
即所有的变量都有Object的方法。
String
chatAt : function ...
charCodeAt : function ...
sub : function ....
..........
__proto__: Object
Funciton
arguments: ...
call:
apply:
.............
__proto__: Object
等等
2.
当你得到一个A对象类型的B实例的时候,B实例的__proto__属性的值就是A.prototype对象引用。
function A (name) {
this.name = name ;
return this;
}
A是一个Function对象,所以A.__proto__等于Function的原型,即A.
Emp的实例 拥有Person的原型,也就是拥有他的属性或方法
Emp实例的属性查找顺序
Emp-->Person-->Object
只有函数类型才有原型对象