var Point = function (x,y){
this .x = x;
this .y = y;
}
Point.name = ' 我是name ' ;
Point.prototype.sum = function (){
return this .x + this .y;
}
Point.prototype.odd = function (){
alert( this .sum());
}
var a = new Point( 1 , 2 );
a.odd(); var b = new Point( 3 , 4 );
b.odd();
Point.prototype = { // 这个过程将会覆盖之前的方法(sum,odd)
plus : function (){
return this .x - this .y;
},
odd2: function (){
alert( this .plus());
}
}
b.odd(); // 这里不会有异常
var c = new Point( 5 , 3 );
c.odd2(); // 这里不会有异常
alert(c.name); // 异常 undefined 可以得出结论 Point.name != Point.prototype.name
// Point.prototype.name 是实例化后所用的. 而Point.name 相当于自身的静态变量而已
c.odd(); // 这里会出异常
1. prototype 它添加的属性相当实例化的函数(属性) 一样.而如果是Point.sum 那么在new Point()是调不出来sum的.