//据说能理解这三行的,js原型已经攻克了 ? !!!
function Fun(){}
var a = new Fun();
console.log("0:\t",a.__proto__ == Fun.constructor.prototype.__proto__); //false
// 如何 解释/理解 上面的三行代码 ?
//so
//由 a.__proto__ == Fun.prototype
console.log("11:\t", a.__proto__ == Fun.prototype);
//得1 a.__proto__.__proto__ == Fun.prototype.__proto__ == Object.prototype
console.log("12:\t", a.__proto__.__proto__ == Fun.prototype.__proto__,Fun.prototype.__proto__ == Object.prototype);
//由 Fun.constructor.prototype == Fun.__proto__ == Function.prototype
console.log("21:\t", Fun.constructor.prototype == Fun.__proto__, Fun.__proto__ == Function.prototype );
//得2 Fun.constructor.prototype.__proto__ == Fun.__proto__.__proto__ == Function.prototype.__proto__ == Object.prototype
console.log("22:\t",
Fun.constructor.prototype.__proto__ == Fun.__proto__.__proto__,
Fun.__proto__.__proto__ == Function.prototype.__proto__,
Function.prototype.__proto__ == Object.prototype
);
//由1,2
//得3 a.__proto__.__proto__ == Fun.constructor.prototype.__proto__
console.log("31:\t",a.__proto__.__proto__ == Fun.constructor.prototype.__proto__);
//so a.__proto__ != a.__proto__.__proto__
console.log("32:\t",a.__proto__ != a.__proto__.__proto__);
//so Fun.prototype != Object.prototype
console.log("33:\t",Fun.prototype != Object.prototype);
//because Fun.prototype.__proto__ == Object.prototype
console.log("34:\t",Fun.prototype.__proto__ == Object.prototype);
//附 prototype和__proto__关系图
// http://note.youdao.com/noteshare?id=94f8bc1e9503902bd83d02f2a6706bec&sub=1EDCC088D57B4DBD891473B3F88D2D03
// http://note.youdao.com/noteshare?id=29af08eef11853ea53590d8d54f9a633&sub=EFB303175C134715A582CB1923492944