构造函数、原型、实例 三者的关系
<script>
// 构造函数来创建对象:
function Star(uname,age){
this.uname=uname;
this.age=age;
// this.sing=function(){
// console.log('唱的歌');
// }
}
// prototype是个对象,也叫原型对象;作用:(为了节约内存而)共享方法
// (一个方法用函数,多个方法没办法只能用对!象!,对象里包函数,*此时要手动添加constructor构造函数这个属性)
Star.prototype={
constructor:Star,
sing:function(){
console.log('唱歌噢');
},
dance:function(){
console.log('跳舞噢');
},
};
//下面是实例 :
var dehua= new Star('刘德华',18);
var xueyou= new Star('张学友',19);
// 下面展示了构造函数的原型对象 &&和 实例的,对象的原型 两者的 方法:
console.log(Star.prototype);//{constructor: ƒ, sing: ƒ, dance: ƒ}
console.log(dehua.__proto__);
// 下面展示了构造函数的原型对象 &&和 实例的,对象的原型 两者的 constructor的指向 :
console.log(Star.prototype.constructor);
console.log(dehua.__proto__.constructor); //f Star(...)...........
</script>