自己画的一张图,利于自己理解,大家如果看到的画,也建议画一下,这样才能自己吃透原型和原型链
接下来用这张图解决原型和原型链相关的题目
1.Object和Function的题
console.log(Function.objMethod); // undefined
Object.prototype.objMethod = function() {
/*some object method code here*/
}
console.log(Object.objMethod);
console.log(Function.objMethod);
console(Function.objMethod === Object.objMethod); //true or false?
答案肯定是true;
为什么?
因为从最上边图看:从原型链考虑:原型链是通过__proto__去实现的,那么Function上没有objMethod方法,那么就去找__proto__指向Function.prototype,Function.prototype也没有此方法,就会往上找,Function.prototype.__proto__=Object.prototype,Object.prototype有这个方法,那么Function也就有这个方法。
那如果Funtion.prototype有一个方法,从图上看也可以看到Object.__proto__=Function.prototype,那么Object上也会有该方法。