javaScript prototype原型的理解

function Box(){};

Box.prototype.name = "lishiming";
Box.prototype.age = 23;
Box.prototype.run = function(){
    return this.name;
};

var box = new Box();
var box2 = new Box();

alert(box.name);

alert(box2.name);

 

从这里可以看出box与box2的name值是一样的,这就是prototype的作用,实现成员的共享。

如果学过java的人肯定知道java语言里面有一种变量的类型,

叫做静态变量,或者是静态成员,JavsScript的prototype其实就相当于Java里面的static关键字

在Java中,使用static关键字修改的变量叫做类变量,而JavaScript没有类这种概念,在此,可以理解为prototype修饰的变量为类变量。

JavaScript对象默认情况下已经存在了prototype这个变量引用,只是为空,可以理解为对象或者是变量。这个对象指向一个空对象。

当为这个prototype赋值的时候,不再为空,也就指向了赋值后的对象,而且这个prototype不会改变,所以指向的引用对象也不会变。

这样就实现了对象共享变量的功能

你可能感兴趣的:(JavaScript)