prototype是一个原型对象
JavaScript规定中,每一个构造函数都有一个prototype属性,指向另一个对象,注意:这个prototype就是一个对象,这个对象的所有属性和方法,都会被构造函数所拥有
原型时什么?
答:原型时一个对象,我们也称为prototype为原型对象
原型的主要最用时什么?
答:共享方法
1.一般情况下,我们的公共属性定义到构造函数里面,
- 构造函数中,不要直接写方法。只能写属性,将方法写在原型对象中。
2.公共的方法我们放到原型对象身上;(prototype)
- 我们可以把那些不变的方法,直接定义在prototype对象上,这样所有对象的实例就可以共享这些方法
<script> function Star(uname,age){ this.uname = uname; this.age = age; // this.sing = function(){ // console.log('我会唱歌'); // } } //把方法写在原型需对象上面 prototype时原型对象 sing时方法 Star.prototype.sing = function(){ console.log('我会唱歌'); } //实例成员只能通过实例化的对象来访问 var ldh = new Star('刘德华',18); var zxy = new Star('张学友',20); console.log(ldh.sing===zxy.sing); //此时就等于true了 // console.log(ldh ===zxy);//等与false不相等 //这样的话就可以调用sing方法了,实现了方法的共享 ldh.sing();//我会唱歌 zxy.sing();//我会唱歌 </script>
运行结果:
-