[Javascript] 关于prototype的一些说明

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的.

千人.NET交流群:18362376,因为有你,代码变得更简单,加群请输入cnblogs
原文地址:https://www.cnblogs.com/kingkoo/p/2050720.html