1. //1. 错误原因:f.sum===Fn.prototype.sum出弄错了,
    2. function Fn(num) {
    3. this.x = this.y = num;
    4. }
    5. Fn.prototype = {
    6. x: 20,
    7. sum: function () {
    8. console.log(this.x + this.y);
    9. }
    10. };
    11. let f = new Fn(10);
    12. console.log(f.sum === Fn.prototype.sum);//false
    13. f.sum();//20
    14. Fn.prototype.sum();//-->20+undefined-->NaN
    15. console.log(f.constructor);
    16. //2.
    17. function Fn() {
    18. this.x = 100;
    19. this.y = 200;
    20. this.getX = function () {
    21. console.log(this.x);
    22. }
    23. }
    24. Fn.prototype.getX = function () {
    25. console.log(this.x);
    26. };
    27. Fn.prototype.getY = function () {
    28. console.log(this.y);
    29. };
    30. let f1 = new Fn;
    31. let f2 = new Fn;
    32. console.log(f1.getX === f2.getX);
    33. console.log(f1.getY === f2.getY);
    34. console.log(f1.__proto__.getY === Fn.prototype.getY);
    35. console.log(f1.__proto__.getX === f2.getX);
    36. console.log(f1.getX === Fn.prototype.getX);
    37. console.log(f1.constructor);
    38. console.log(Fn.prototype.__proto__.constructor);
    39. f1.getX();
    40. f1.__proto__.getX();
    41. f2.getY();
    42. Fn.prototype.getY();