js问题:js的prototype怎么理解?

js问题:js的prototype怎么理解?
最新回答
比你帅

2022-06-27 17:13:08

自从有了面向对象(OOP)编程思想蠢正以后。继承就成了复用程序代码的一种良好的组织方式。


传统的面向对象采用“类继承”的方式,例如Java、C#、C++、PHP等。而Javascript采用了另外一种更为简便的继承方式,“原型继承”的方式。


原型是指一个对象模板。当要创建某一类型的对象时,我们创建一个较小的对象,并让这个较小的对象指向这个原型对象。这样,创建的对象占用的内存空间就比较小,因为它复用了和此原型对象中的属性和方法。


例如:

function Persion(){}

var proto = Person.prototype;

proto.foo 带棚悔= function(){alert('foo');};

var p = new Person();
var p2 = new Person();

p.foo();
p2.foo();

//这里我们看到。p对象和p1对象自动就拥有foo方法。因为他们共享了proto这个原型对象中的属性和方法。