从Chrome中我们我发现,Google的哲学就是KISS(keep it simple and stupid).
不会多一点,也不会少一点,生怕弄出一点不完美。
javascript的控制台倒可以当做网上流行的Javascript CheatSheet。
以String为例子,敲入
> String.
联想出很多方法和属性
这些方法大多是和W3C相符的,前面那4个应该是内部实现,是私有的方法.
如果再敲下去,比如敲 String.prototype 大家就会发现javascript的原型链了,每个方法或属性都其__proto__属性
首先,String对象的constructor当然是function String( ) { }
其次,String对象的__Proto__当之无愧的是Object
再次,包括constructor,每个方法的__proto__是一个function Empty(),empty由function对象构造,每个function的原型又是empty.
因此有以下原型链条的结论:不要再点下去了,再展开就上当了,这就是个递归树
String.constructor.prototype(string).__proto__(object).constructor(function Object).prototype(Object).constructor(function Object)...照此反复下去Object是自己生自己
String.constructor.__proto__(function Empty()).constructor(function Function).protype(function Empty).constructor(function Function).....照此反复下去
总之,就是,每个对象呢,都有自己的constructor和proto, 每个prototype同理也包含一个constructor和一个__proto__,每个constructor呢,都有一个protype和__proto__,每个方法的__proto__呢,都有自己的constructor和__proto__,对象的__proto__有自己的constructor. 鸡生蛋...蛋生鸡...这也应该是Javascript的哲学之一吧。